Provided by: fakeroot_1.18.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 bibliotheek] [--faked binair-bestand-faked] [-i  te-laden-bestand]  [-s
       te-bewaren-bestand]  [-u|--unknown-is-real  ] [-b|--fd-base ] [-h|--help ] [-v|--version ]
       [--] [commando]

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 werkt door de bibliotheekfuncties voor bestandsbewerking (chmod(2), stat(2) enz.)
       te  vervangen door namaakfuncties, die het effect dat zou zijn opgetreden als de gebruiker
       echt root was, nabootsen. Deze `omhulselfuncties' (wrapper functions) bevinden zich in een
       gedeelde  bibliotheek,  /usr/lib/libfakeroot.so*,  die  wordt  geladen  via het mechanisme
       LD_PRELOAD van de dynamische lader. (Zie 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.

       Onthoud  ook  dat  u  beter  niet  de  binaire  bestanden  zelf   kunt   bouwen   in   een
       fakeroot-omgeving.  Vooral  configure  en dergelijke werken vaak niet goed als het systeem
       zich  plotseling  anders  gaat  gedragen.  (Bovendien   wissen   deze   programma's   soms
       omgevingsvariabelen die fakeroot nodig kan hebben.)

OPTIES

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

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

       [--] commando
              Een  willekeurig  commando  dat  u in een fakeroot-omgeving wilt uitvoeren. Gebruik
              ‘--’ als uw commando eigen opties bevat die het uitlezen van opties  door  fakeroot
              in de war zouden kunnen sturen.

       -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  is  speciaal  geschreven  zodat  gebruikers  Debian  GNU/Linux-pakketten (in het
       deb(5)-formaat) kunnen maken zonder daarvoor root-privileges nodig te hebben. Dit  doet  u
       met  commando's  als  dpkg-buildpackage  -rfakeroot  of  debuild  -rfakeroot  (in feite is
       -rfakeroot tegenwoordig standaard in debuild, dus die parameter kunt u weglaten).

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/libfakeroot.so* De gedeelde bibliotheek met de omhulselfuncties.

OMGEVING

       FAKEROOTKEY
              De  sleutel  om  met  de fakeroot-daemon te communiceren. Ieder programma dat wordt
              gestart met de juiste LD_PRELOAD en een FAKEROOTKEY  van  een  momenteel  draaiende
              daemon  wordt  automatisch  verbonden  met  die daemon, en krijgt hetzelfde `valse'
              zicht op de toegangsrechten/eigenaren van het bestandssysteem (ervan uitgaande  dat
              de  daemon  en het programma dat de verbinding maakt werden opgestart door dezelfde
              gebruiker).

       LD_LIBRARY_PATH

       LD_PRELOAD
              Fakeroot werkt door systeemaanroepen te `omhullen' (`wrappen'). Dit wordt  mogelijk
              gemaakt door LD_LIBRARY_PATH=/usr/lib/fakeroot en LD_PRELOAD=libfakeroot.so.0 in te
              stellen. Deze bibliotheek wordt vóór de C-bibliotheek van het systeem  geladen,  en
              dus  wordt  het  grootste  deel van de bibliotheekfuncties erdoor afgevangen. Als u
              ofwel LD_LIBRARY_PATH ofwel LD_PRELOAD moet instellen vanuit een fakeroot-omgeving,
              dan  moeten  deze  na  de  al  ingestelde  paden  worden  ingesteld,  bijvoorbeeld:
              LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/pad/naar/de/map/

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 testbestand
              fakeroot
              ls -al testbestand

              uitvoert, in deze of in omgekeerde volgorde,

              fakeroot
              touch testbestand
              ls -al testbestand

              dan kan fakeroot niet weten dat in het eerste geval  de  eigenaar  van  testbestand
              eigenlijk  joost  zou  moeten zijn terwijl in het tweede geval deze root moet zijn.
              Voor  het  maken  van  Debian-pakketten  is  het  altijd  goed  om  standaard  alle
              `onbekende' bestanden eigenaar en groep 0 (root) te geven. Een echte oplossing voor
              dit probleem zou zijn het omhullen van open() en  create(),  maar  dat  geeft  weer
              andere  problemen,  zoals het libtricks-pakket heeft aangetoond. Dit pakket omhulde
              veel meer functies, en wilde veel meer doen dan fakeroot. Het bleek dat slechts een
              kleine  bijwerking  van  libc  (van  een versie waarin de functie stat() de functie
              open() niet aanriep, naar eentje met een stat()-functie die (in  sommige  gevallen)
              wel  degelijk  van  open() gebruikt maakte) onverklaarbare `segfaults' veroorzaakte
              (dat wil zeggen, de stat() van libc6 riep de omhulde open() aan, die vervolgens  de
              stat()  van  libc6  weer  aanriep, enz.). Het oplossen van dit probleem was al niet
              makkelijk, maar bij iedere oplossing was het slechts een kwestie van  tijd  voordat
              een  andere  functie weer open() begon aan te roepen, en dan hebben we het nog niet
              eens over het aanpassen van fakeroot aan een ander besturingssysteem.  Dus  besloot
              ik  om  het  aantal  door  fakeroot  omhulde functies dan maar zo klein mogelijk te
              houden, om zo het gevaar van ‘botsingen’ in te perken.

       GNU configure (en andere soortgelijke programma's)
              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

       Vooral door J.H.M. Dassen <jdassen@debian.org>. Nogal wat wijzigingen en aanvullingen door
       joost en Clint.

ZIE OOK

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