Provided by: fakeroot_1.17-1_i386 bug

NOM

       fakeroot  -  lance  une  commande  dans  un  environnement simulant les
       privileges du superutilisateur pour la manipulation des fichiers.

SYNOPSIS

       fakeroot  [-l|--lib  biblioth`eque]  [--faked  binairedesimulation]  [-i
       fichier-de-chargement] [-s fichier-de-sauvegarde] [-u|--unknown-is-real
       ] [-b|--fd-base ] [-h|--help ] [-v|--version ] [--] [commande]

DESCRIPTION

       fakeroot lance une commande dans un  environnement  dans  lequel  cette
       commande  obtient  les  droits  de  l'administrateur pour manipuler des
       fichiers. C'est pratique pour permettre aux utilisateurs de  creer  des
       archives  (tar,  ar,  .deb, etc.) qui contiennent des fichiers avec les
       privileges et appartenances  du  superutilisateur.  Sans  fakeroot,  il
       faudrait posseder les droits du superutilisateur pour donner les droits
       et appartenances convenables aux fichiers constituant  l'archive,  puis
       de   les  assembler ;  ou  bien,  il  faudrait  construire  directement
       l'archive, sans utiliser le programme d'archivage.

       fakeroot fonctionne en remplacant les fonctions de la  bibliotheque  de
       manipulation  des  fichiers  (chmod(2), stat(2), etc.) par d'autres qui
       simulent les resultats que  la  vraie  bibliotheque  aurait  donnes  si
       l'utilisateur  avait  reellement  ete  superutilisateur.  Ces fonctions
       simulees sont dans la  bibliotheque  partagee  /usr/lib/libfakeroot.so*
       qui  est  chargee  par  le  mecanisme  LD_PRELOAD du chargeur dynamique
       (dynamic loader). (Voir ld.so(8))

       Si vous desirez construire des paquets avec fakeroot, veuillez  essayer
       de  construire  d'abord  le  paquet  fakeroot : l'etape << debian/rules
       build >> realise quelques tests (principalement  pour  les  bogues  des
       vieilles versions de fakeroot). Si ces tests echouent (si vous avez par
       exemple  certains  programmes  en  libc5   sur   votre   systeme),   la
       construction  d'autres  paquets  avec  fakeroot  echouera  certainement
       aussi, mais de facon parfois plus subtile.

       De meme,  notez  qu'il  vaut  mieux  ne  pas  construire  les  binaires
       eux-memes   sous  fakeroot.  En  particulier,  configure  et  ses  amis
       n'apprecient pas quand le systeme se comporte differemment de ce qu'ils
       attendent   (parfois,   ils   modifient   aleatoirement  des  variables
       d'environnement dont fakeroot a besoin).

OPTIONS

       -l biblioth`eque, --lib biblioth`eque
              Specifie  une  autre  bibliotheque  de   substitution   (wrapper
              library).

       --faked binaire
              Specifie l'utilisation d'une autre bibliotheque que faked.

       [--] commande
              La  commande  a  lancer sous fakeroot. Utilisez << -- >>  si des
              options de la commande risque d'etre confondues avec  celles  de
              fakeroot.

       -s fichier-de-sauvegarde
              Enregistre       l'environnement      de      fakeroot      dans
              fichier-de-sauvegarde en quittant. Ce fichier pourra servir plus
              tard  a  restaurer  cette  configuration  grace  a  l'option -i.
              Toutefois, cette  option  echouera  et  fakeroot  se  comportera
              bizarrement  sauf  si  vous  laissez  les fichiers manipules par
              fakeroot intacts quand vous etes en dehors de cet environnement.
              Malgre  cette  restriction,  cela  peut etre utile. Par exemple,
              cela peut servir avec rsync(1)  pour  sauvegarder  et  restaurer
              toute  une  arborescence de repertoires avec les informations de
              proprietaire,  groupe  et  peripherique  sans   avoir   a   etre
              superutilisateur.   Voir   /usr/share/doc/fakeroot/README.saving
              pour plus d'informations.

       -i fichier-de-chargement
              Recharge a  partir  de  fichier-de-chargement  un  environnement
              fakeroot  prealablement  sauvegarde  en  utilisant  l'option -s.
              Notez  que  cela  ne   sauvegardera   pas   automatiquement   la
              configuration,   vous   devez   repreciser   -s   dans  ce  but.
              L'utilisation du meme nom de fichier pour  -i  et  -s  dans  une
              seule commande fakeroot ne pose pas de probleme.

       -u, --unknown-is-real
              Utilise   le  veritable  proprietaire  des  fichiers  auparavant
              inconnus  de  fakeroot,  plutot   que   de   considerer   qu'ils
              appartiennent a root:root.

       -b fd  Definit la valeur de base du descripteur de fichier (en mode TCP
              uniquement). Fd sera la plus petite  valeur  du  descripteur  de
              fichier  utilise  pour  les connexions TCP. Ce reglage peut etre
              tres pratique pour gerer les descripteurs de  fichiers  utilises
              par les programmes qui fonctionnent sous fakeroot.

       -h     Affiche l'aide.

       -v     Affiche la version.

EXEMPLES

       Voici un exemple d'utilisation de fakeroot. Notez bien qu'a l'interieur
       de  l'environnement  fakeroot,  les  manipulations  de   fichiers   qui
       requierent les privileges du superutilisateur ont lieu, mais uniquement
       virtuellement.

       $  whoami
       joost
       $ fakeroot /bin/bash
       #  whoami
       root
       # mknod hda3 b 3 1
       # ls -ld hda3
       brw-r--r--   1 root     root       3,   1 Jul  2 22:58 hda3
       # chown joost:root hda3
       # ls -ld hda3
       brw-r--r--   1 joost    root       3,   1 Jul  2 22:58 hda3
       # ls -ld /
       drwxr-xr-x  20 root     root         1024 Jun 17 21:50 /
       # chown joost:users /
       # chmod a+w /
       # ls -ld /
       drwxrwxrwx  20 joost    users        1024 Jun 17 21:50 /
       # exit
       $ ls -ld /
       drwxr-xr-x  20 root     root         1024 Jun 17 21:50 //
       $ ls -ld hda3
       -rw-r--r--   1 joost    users           0 Jul  2 22:58 hda3

       Seule l'operation que l'utilisateur joost pouvait realiser a reellement
       aboutie.

       fakeroot  a ete ecrit specifiquement pour permettre aux utilisateurs de
       creer des paquets pour Debian GNU/Linux (au format deb(5)) sans avoir a
       leur donner les privileges du superutilisateur. Ceci peut etre fait par
       des  commandes  telles  que  dpkg-buildpackage  -rfakeroot  ou  debuild
       -rfakeroot (-rfakeroot est actuellement utilise par defaut par debuild,
       donc vous n'avez pas besoin de cet argument).

ASPECTS DE S'ECURIT'E

       fakeroot  est  un  programme  normal,  sans  privileges  speciaux.   Il
       n'augmente  pas  les  privileges  de  l'utilisateur  et n'altere pas la
       securite du systeme.

FICHIERS

       /usr/lib/libfakeroot/libfakeroot.so*  La  bibliotheque   partagee   qui
       contient les fonctions simulees.

ENVIRONNEMENT

       FAKEROOTKEY
              La  cle  utilisee  pour communiquer avec le demon fakeroot. Tout
              programme qui demarre avec le bon LD_PRELOAD et une  FAKEROOTKEY
              d'un  serveur actif se connectera automatiquement a ce demon, et
              aura la meme  << fausse >>  vision  des  droits  du  systeme  de
              fichiers  (si  le  serveur et le programme connecte ont bien ete
              lances par le meme utilisateur).

       LD_LIBRARY_PATH

       LD_PRELOAD
              Fakeroot a ete concu en encapsulant les appels  systemes.  On  y
              arrive   en   definissant  LD_LIBRARY_PATH=/usr/lib/fakeroot  et
              LD_PRELOAD=libfakeroot.so.0.  Cette  bibliotheque  est   chargee
              avant  la  bibliotheque  C du systeme, d'ou l'interception de la
              plupart des fonctions de la bibliotheque. Si vous devez  definir
              d'autres    LD_LIBRARY_PATH   ou   LD_PRELOAD   au   sein   d'un
              environnement fakeroot, cela devrait  etre  fait  en  respectant
              l'ordre     de     placement,    par    exemple    comme    dans
              LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/toto/titi/.

LIMITES

       Versions des biblioth`eques
              Toute commande executee sous fakeroot devra etre liee a la  meme
              version de la bibliotheque C que fakeroot lui-meme.

       open()/create()
              fakeroot   n'encapsule   pas  open(),  create(),  etc.  Donc  si
              l'utilisateur joost tape soit

              touch foo
              fakeroot
              ls -al foo

              soit

              fakeroot
              touch foo
              ls -al foo

              fakeroot n'aura aucun moyen de savoir que dans le  premier  cas,
              le  proprietaire  de foo est reellement joost tandis que dans le
              second cas, il aurait du etre root. Pour un  paquet  Debian,  il
              est   toujours   correct   de   donner   a   tous  les  fichiers
              << inconnus >> l'uid=gid=0. La vraie  solution  est  de  simuler
              open()  et create(), mais cela souleve d'autres problemes, comme
              demontre par le paquet  libtricks.  Ce  paquet  simule  beaucoup
              d'autres fonctions, et tente d'aller plus loin que fakeroot . On
              peut s'apercevoir qu'une mise a jour minime de  la  libc  (d'une
              version  dans laquelle la fonction stat() n'utilise pas open() a
              une nouvelle version dans laquelle la  fonction  stat()  utilise
              (dans certains cas)  open()), causera d'inexplicables erreurs de
              segmentation (ainsi, le stat() de la libc6 appellera la fonction
              simulee  open(),  qui a son tour appellera la fonction stat() de
              la libc6, etc.). La correction n'a pas ete facile, mais une fois
              corrige,  ce  n'etait plus qu'une question de temps avant qu'une
              autre fonction ne se mette a utiliser open(). Quant  au  portage
              sur un autre systeme d'exploitation, il n'a pas ete envisage. Il
              a donc ete decide de limiter au maximum le nombre  de  fonctions
              simulees  par  fakeroot,  afin  de  limiter l'eventualite de ces
              << collisions >>.

       GNU configure (et autres programmes du m^eme genre)
              En pratique, fakeroot modifie le comportement  du  systeme.  Les
              programmes  qui  testent  le  systeme (tel que configure du GNU)
              peuvent etre troubles par cela (ou, s'ils ne le  sont  pas,  ils
              risquent  de  solliciter  fakeroot  a  un point tel que celui-ci
              risque lui-meme de s'y perdre). Il est donc preferable de ne pas
              lancer  << configure >>  dans  un  environnement fakeroot. Comme
              configure doit etre lance par la cible  build  de  debian/rules,
              l'utilisation   de   << dpkg-buildpackage   -rfakeroot >>   gere
              correctement ce probleme.

BOGUES

       open() n'est pas simule. Ce n'est pas si grave que  cela,  mais  si  un
       programme  invoque  open("file",  O_WRONLY, 000), ecrit dans ce fichier
       << file >>, le ferme, puis reessaye ensuite  de  l'ouvrir  en  lecture,
       alors  cette  tentative echouera, car les droits du fichier seront 000.
       Le bogue,  c'est  que  si  root  fait  cette  operation,  alors  open()
       fonctionne,  puisque  les  droits  des  fichiers  ne  sont  pas du tout
       verifies pour root. Il a ete choisi  de  ne  pas  simuler  open(),  car
       open()  est  utilise  par  nombre  d'autres  fonctions de la libc (dont
       certaines qui sont deja simulees par fakeroot),  ce  qui  creerait  des
       boucles  (ou  pourrait  en  creer  quand  l'implementation des diverses
       fonctions de la libc change).

COPIES

       fakeroot est distribue sous la  licence  GNU  General  Public  License.
       (GPL 2.0 ou superieure).

AUTEURS

       Joost Witteveen
              <joostje@debian.org>

       Clint Adams
              <clint@debian.org>

       Timo Savola

TRADUCTION

       Sylvain Cherrier <sylvain.cherrier@free.fr>.

PAGE DE MANUEL

       En  majeure  partie  ecrite  par J.H.M. Dassen <jdassen@debian.org>: La
       plupart des ajouts et des modifications par Joost et Clint.

VOIR AUSSI

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

Projet Debian                     6 aout 2004                      fakeroot(1)