Provided by: fakeroot_1.36-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 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.

       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-*.so The shared library containing the wrapper functions.

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

Project Debian                                   5 October 2014                                      fakeroot(1)