Provided by: fakeroot_1.18.2-1_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) reservekopieen 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 voor 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"EREN

       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