Provided by: fakeroot_1.37.1.2-1_amd64 bug

NAAM

       fakeroot  -  voert een commando uit in een omgeving die root-privileges fingeert voor het manipuleren van
       bestanden

SYNTAX

       fakeroot [-l|--lib library] [--faked faked-binary] [-i load-file] [-s  save-file]  [-u|--unknown-is-real]
       [-b|--fd-base] [-h|--help] [-v|--version] [--] [command]

BESCHRIJVING

       fakeroot  voert  een  commando  uit  in  een  omgeving  waarin  het  voor  dit  commando  lijkt alsof het
       root-privileges heeft voor het bewerken van bestanden. Zo kunnen gebruikers in archieven (zoals tar,  ar,
       .deb  enz.)   bestanden  opnemen  met  eigenaar  en toegangsrechten die normaal gesproken alleen root mag
       instellen. Zonder fakeroot zou men root-toegang nodig hebben om de bestanden in het archief aan te  maken
       met  de  juiste  toegangsrechten  en eigenaar en ze dan in te pakken, of men zou de archieven direct, dus
       zonder gebruik te maken van het archiveerprogramma, moeten opbouwen.

       fakeroot works by replacing the file manipulation library functions (chmod(2), stat(2) etc.) by ones that
       simulate the effect the real library functions would have had, had  the  user  really  been  root.  These
       wrapper  functions  are  in  a  shared  library  /usr/lib/*/libfakeroot-*.so  or similar location on your
       platform.  The shared object is loaded through the LD_PRELOAD  mechanism  of  the  dynamic  loader.  (See
       ld.so(8))

       Bent  u  van  plan  met  behulp  van  fakeroot  programmatuurpakketten  te  maken,  probeer dan eerst het
       fakeroot-pakket zelf opnieuw op te bouwen. De regel `build' in het bestand  debian/rules  bevat  namelijk
       een  aantal  tests  (die vooral fouten in oude versies van fakeroot opsporen). Als deze tests niet slagen
       (omdat u bijvoorbeeld bepaalde libc5-programma's op uw systeem heeft), dan zullen andere pakketten die  u
       met  behulp  van fakeroot opbouwt waarschijnlijk ook niet goed werken. Dit kan dan echter veel moeilijker
       te ontdekken zijn.

       Also, note that it's best not to do the building of the binaries themselves  under  fakeroot.  Especially
       configure  and  friends  don't like it when the system suddenly behaves differently from what they expect
       (or, they randomly unset some environment variables, some of which fakeroot needs).

OPTIES

       -l bibliotheek, --lib bibliotheek
              Een andere omhulselbibliotheek gebruiken.

       --faked binary
              Een ander binair bestand als faked(1) gebruiken.

       [--] commando
              Any command you want to be run as fakeroot. Use ‘--’ if in the command you have other options that
              may confuse fakeroot's option parsing.

       -s te-bewaren-bestand
              De fakeroot-omgeving in het te-bewaren-bestand opslaan bij afsluiten.  Door  dit  bestand  aan  de
              optie  -i  mee te geven kunt u later de omgeving herstellen. U moet echter niet tussentijds buiten
              de fakeroot-omgeving enige bewerking uitvoeren op  de  bestanden,  anders  zal  dit  bestand  gaan
              `lekken'  en  zal fakeroot zich onvoorspelbaar gedragen. Toch kan deze mogelijkheid nuttig zijn. U
              kunt bijvoorbeeld met rsync(1) reservekopieën maken van hele mappen, compleet met informatie  over
              gebruikers,     groepen     en     apparaten,     zonder    root    te    hoeven    worden.    Zie
              /usr/share/doc/fakeroot/README.saving voor meer informatie.

       -i te-laden-bestand
              Een eerder met -s bewaarde fakeroot-omgeving laden uit het te-laden-bestand. Let erop dat met deze
              optie het bestand niet bijgewerkt wordt; gebruik daarvoor ook -s. Het is veilig om voor  zowel  -i
              als -s hetzelfde bestand aan te geven binnen een enkele aanroep van fakeroot.

       -u, --unknown-is-real
              De  echte  eigenaren  handhaven van bestanden die niet eerder bij fakeroot bekend waren, in plaats
              van te doen alsof deze eigendom waren van root:root.

       -b fd  Het basisnummer van file descriptors aangeven (alleen  TCP-modus).  fd  geeft  het  minimale  file
              descriptor-nummer  aan  dat  voor TCP-verbindingen gebruikt kan worden; dit kan belangrijk zijn om
              conflicten te vermijden met de file descriptors die door de onder fakeroot uitgevoerde programma's
              gebruikt worden.

       -h     Hulp tonen.

       -v     Versie tonen.

VOORBEELDEN

       Hieronder ziet u een voorbeeldsessie met fakeroot. Merk op dat binnen  de  nagebootste  root-omgeving  de
       bestandsbewerkingen  die  root-privileges  vereisen  lijken  te  slagen,  maar  in  het  echt niet worden
       uitgevoerd.

       $  whoami
       joost
       $ fakeroot /bin/bash
       #  whoami
       root
       # mknod hda3 b 3 1
       # ls -ld hda3
       brw-r--r--  1 root root 3, 1 2007-01-21 12:02 hda3
       # chown joost:root hda3
       # ls -ld hda3
       brw-r--r--  1 joost root 3, 1 2007-01-21 12:02 hda3
       # ls -ld /
       drwxr-xr-x  22 root root 600 2007-01-20 23:58 /
       # chown joost:users /
       # chmod a+w /
       # ls -ld /
       drwxrwxrwx  22 joost users 600 2007-01-20 23:58 /
       # exit
       $ ls -ld /
       drwxr-xr-x  22 root root 600 2007-01-20 23:58 /
       $ ls -ld hda3
       -rw-r--r--  1 joost users 0 2007-01-21 12:06 hda3

       Alleen de bewerkingen die de gebruiker joost toch al mocht uitvoeren, gebeuren ook echt.

       fakeroot was specifically written to enable users to create Debian  GNU/Linux  packages  (in  the  deb(5)
       format)  without  giving  them  root  privileges.   This  can  be done by commands like dpkg-buildpackage
       -rfakeroot or debuild -rfakeroot (actually, -rfakeroot is default in debuild nowadays, so you don't  need
       that argument).

VEILIGHEIDSASPECTEN

       fakeroot  is  een  normaal programma, zonder setuid. Het verhoogt de privileges van de gebruiker niet, en
       verlaagt dus ook niet de veiligheid van het systeem.

BESTANDEN

       /usr/lib/*/libfakeroot-*.so The shared library containing the wrapper functions.

OMGEVING

       FAKEROOTKEY
              The key used to communicate  with  the  fakeroot  daemon.  Any  program  started  with  the  right
              LD_PRELOAD  and  a  FAKEROOTKEY of a running daemon will automatically connect to that daemon, and
              have the same "fake" view of the file system's permissions/ownerships  (assuming  the  daemon  and
              connecting program were started by the same user).

       LD_LIBRARY_PATH

       LD_PRELOAD
              fakeroot   is   implemented   by   wrapping   system  calls.   This  is  accomplished  by  setting
              LD_LIBRARY_PATH=/usr/lib/fakeroot and LD_PRELOAD=libfakeroot.so.0.  That library is loaded  before
              the  system's  C library, and so most of the library functions are intercepted by it.  If you need
              to set either LD_LIBRARY_PATH or LD_PRELOAD from within a fakeroot environment, it should  be  set
              relative to the given paths, as in LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/foo/bar/

BEPERKINGEN

       Versies bibliotheken
              Ieder  binnen  fakeroot  uitgevoerd  commando  dient  gekoppeld te zijn aan dezelfde versie van de
              C-bibliotheek als fakeroot zelf.

       open()/create()
              fakeroot `omhult' niet de functies open(), create(), enz. Dus als de gebruiker joost de commando's

              touch foo
              fakeroot
              ls -al foo

              uitvoert, in deze of in omgekeerde volgorde,

              fakeroot
              touch testbestand
              ls -al testbestand

              fakeroot has no way of knowing that in the first case, the owner of foo  really  should  be  joost
              while  the  second  case it should have been root.  For the Debian packaging, defaulting to giving
              all "unknown" files uid=gid=0, is always OK. The real way  around  this  is  to  wrap  open()  and
              create(),  but that creates other problems, as demonstrated by the libtricks package. This package
              wrapped many more functions, and tried to do a lot more than fakeroot . It turned out that a minor
              upgrade of libc (from one where the stat()  function didn't use  open()   to  one  with  a  stat()
              function  that did (in some cases) use open() ), would cause unexplainable segfaults (that is, the
              libc6 stat()  called the wrapped open() , which would then call the libc6 stat() ,  etc).   Fixing
              them  wasn't  all  that easy, but once fixed, it was just a matter of time before another function
              started to use open(), never mind trying to port it  to  a  different  operating  system.  Thus  I
              decided  to  keep  the  number of functions wrapped by fakeroot as small as possible, to limit the
              likelihood of ‘collisions’.

       GNU configure (and other such programs)
              Fakeroot verandert de manier waarop  het  systeem  zich  gedraagt.  Programma's  die  het  systeem
              verkennen,  zoals GNU configure, kunnen hierdoor in de war raken (of anders kunnen zij fakeroot zo
              zwaar belasten dat fakeroot zelf in de war raakt). Het is dus niet aan te raden  configure  binnen
              fakeroot  uit  te  voeren.  Aangezien configure dient te worden aangeroepen in de regel `build' in
              debian/rules, zorgt het commando dpkg-buildpackage -rfakeroot er automatisch voor dat dit  correct
              wordt afgehandeld.

FOUTEN

       Het  programma omhult open() niet. Dit is op zichzelf geen fout, maar als een programma een commando open
       ("bestand", O_WRONLY, 000) uitvoert, dan iets naar het bestand  bestand   schrijft,  het  sluit,  en  dan
       nogmaals  probeert  het  bestand  voor  uitlezen  te  openen,  dan  mislukt  die open()-aanroep, omdat de
       toegangsrechten van het bestand op 000 staan. De fout zit erin dat als root hetzelfde  doet,  open()  wel
       degelijk  zal  slagen,  omdat  de toegangsrechten voor root nooit worden nagetrokken. Ik heb er niettemin
       voor gekozen open() niet te omhullen, omdat open() door vele andere functies in libc wordt gebruikt  (ook
       door  al  omhulde  functies),  wat  kan  uitmonden  in oneindige lussen (nu of in de toekomst, wanneer de
       implementatie van verscheidene libc-functies enigzins verandert).

KOPIËREN

       fakeroot wordt verspreid onder de voorwaarden van de GNU General Public License (GPL 2.0 of recenter).

AUTEURS

       joost witteveen
              <joostje@debian.org>

       Clint Adams
              <clint@debian.org>

       Timo Savola

VERTALING

       Martijn Dekker
              <martijn@inlv.org>

HANDLEIDINGSPAGINA

       mostly by J.H.M. Dassen <jdassen@debian.org> with rather a lot of modsifications and additions  by  joost
       and Clint.

ZIE OOK

       debuild(1), dpkg-buildpackage(1), faked(1), /usr/share/doc/fakeroot/DEBUG

Project Debian                                     2024-12-19                                        fakeroot(1)