Provided by: fakeroot_1.12.1ubuntu1_i386 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 programmas)
              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
              <schizo@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