Provided by: fakeroot_1.36-1_amd64 bug

NOM

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

SYNOPSIS

       fakeroot  [-l|--lib  bibliothèque]   [--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 créer des
       archives  (tar,  ar,  .deb,  etc.)  qui  contiennent des fichiers avec les privilèges et appartenances du
       superutilisateur. Sans fakeroot, il faudrait posséder 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 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))

       Si  vous  désirez  construire des paquets avec fakeroot, veuillez essayer de construire d'abord le paquet
       fakeroot : l'étape « debian/rules build » réalise quelques tests  (principalement  pour  les  bogues  des
       vieilles  versions  de  fakeroot). Si ces tests échouent (si vous avez par exemple certains programmes en
       libc5 sur votre système), la construction d'autres paquets avec  fakeroot  échouera  certainement  aussi,
       mais de façon parfois plus subtile.

       De  même,  notez qu'il vaut mieux ne pas construire les binaires eux-mêmes sous fakeroot. En particulier,
       configure et ses amis n'apprécient pas quand le système se comporte différemment de ce  qu'ils  attendent
       (parfois, ils modifient aléatoirement des variables d'environnement dont fakeroot a besoin).

OPTIONS

       -l bibliothèque, --lib bibliothèque
              Spécifie une autre bibliothèque de substitution (wrapper library).

       --faked binaire
              Spécifie l'utilisation d'une autre bibliothèque que faked.

       [--] commande
              La  commande  à lancer sous fakeroot. Utilisez « -- »  si des options de la commande risque d'être
              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  à  restaurer  cette configuration grâce à l'option -i. Toutefois, cette option
              échouera et fakeroot se comportera bizarrement sauf si vous laissez  les  fichiers  manipulés  par
              fakeroot  intacts  quand  vous êtes en dehors de cet environnement. Malgré cette restriction, cela
              peut être utile. Par exemple, cela peut servir avec rsync(1) pour sauvegarder et  restaurer  toute
              une arborescence de répertoires avec les informations de propriétaire, groupe et périphérique sans
              avoir    à   être   superutilisateur.   Voir   /usr/share/doc/fakeroot/README.saving   pour   plus
              d'informations.

       -i fichier-de-chargement
              Recharge à partir de fichier-de-chargement un environnement fakeroot préalablement  sauvegardé  en
              utilisant  l'option  -s. Notez que cela ne sauvegardera pas automatiquement la configuration, vous
              devez repréciser -s dans ce but. L'utilisation du même nom de fichier pour -i et -s dans une seule
              commande fakeroot ne pose pas de problème.

       -u, --unknown-is-real
              Utilise le véritable propriétaire des fichiers auparavant inconnus  de  fakeroot,  plutôt  que  de
              considérer qu'ils appartiennent à root:root.

       -b fd  Définit  la  valeur  de  base  du descripteur de fichier (en mode TCP uniquement). Fd sera la plus
              petite valeur du descripteur de fichier utilisé pour les connexions TCP. Ce réglage peut être très
              pratique pour gérer les descripteurs de fichiers utilisés 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'à l'intérieur de l'environnement fakeroot,  les
       manipulations  de  fichiers  qui  requièrent les privilèges 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'opération que l'utilisateur joost pouvait réaliser a réellement aboutie.

       fakeroot a été écrit spécifiquement pour permettre aux utilisateurs de  créer  des  paquets  pour  Debian
       GNU/Linux  (au format deb(5)) sans avoir à leur donner les privilèges du superutilisateur. Ceci peut être
       fait par des commandes telles que dpkg-buildpackage -rfakeroot  ou  debuild  -rfakeroot  (-rfakeroot  est
       actuellement utilisé par défaut par debuild, donc vous n'avez pas besoin de cet argument).

ASPECTS DE SÉCURITÉ

       fakeroot  est  un  programme  normal,  sans  privilèges  spéciaux.  Il  n'augmente  pas les privilèges de
       l'utilisateur et n'altère pas la sécurité du système.

FICHIERS

       /usr/lib/*/libfakeroot-*.so The shared library containing the wrapper functions.

ENVIRONNEMENT

       FAKEROOTKEY
              La clé utilisée pour communiquer avec le démon fakeroot. Tout programme qui démarre  avec  le  bon
              LD_PRELOAD et une FAKEROOTKEY d'un serveur actif se connectera automatiquement à ce démon, et aura
              la  même  « fausse »  vision  des  droits  du  système  de fichiers (si le serveur et le programme
              connecté ont bien été lancés par le même utilisateur).

       LD_LIBRARY_PATH

       LD_PRELOAD
              Fakeroot  a  été  conçu  en  encapsulant  les  appels  systèmes.  On  y  arrive   en   définissant
              LD_LIBRARY_PATH=/usr/lib/fakeroot  et  LD_PRELOAD=libfakeroot.so.0. Cette bibliothèque est chargée
              avant la bibliothèque C du système,  d'où  l'interception  de  la  plupart  des  fonctions  de  la
              bibliothèque.  Si  vous  devez  définir  d'autres  LD_LIBRARY_PATH  ou  LD_PRELOAD  au  sein  d'un
              environnement fakeroot, cela devrait être fait en respectant l'ordre  de  placement,  par  exemple
              comme dans LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/toto/titi/.

LIMITES

       Versions des bibliothèques
              Toute  commande  exécutée sous fakeroot devra être liée à la même version de la bibliothèque C que
              fakeroot lui-même.

       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  propriétaire  de  foo  est
              réellement  joost tandis que dans le second cas, il aurait dû être root. Pour un paquet Debian, il
              est toujours correct de donner à tous les fichiers « inconnus » l'uid=gid=0. La vraie solution est
              de simuler open() et create(), mais cela soulève d'autres problèmes, comme démontré 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 à jour minime de la libc (d'une version dans laquelle la fonction
              stat()  n'utilise pas open() à 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  simulée  open(), qui à son tour appellera la fonction stat() de la
              libc6, etc.). La correction n'a pas été facile, mais une fois  corrigé,  ce  n'était  plus  qu'une
              question  de temps avant qu'une autre fonction ne se mette à utiliser open(). Quant au portage sur
              un autre système d'exploitation, il n'a pas été envisagé. Il a  donc  été  décidé  de  limiter  au
              maximum  le  nombre  de  fonctions  simulées  par  fakeroot,  afin de limiter l'éventualité de ces
              « collisions ».

       GNU configure (et autres programmes du même genre)
              En pratique, fakeroot modifie le comportement du système. Les programmes qui  testent  le  système
              (tel  que configure du GNU) peuvent être troublés par cela (ou, s'ils ne le sont pas, ils risquent
              de solliciter fakeroot à un point tel que celui-ci risque lui-même de s'y  perdre).  Il  est  donc
              préférable  de  ne  pas  lancer « configure » dans un environnement fakeroot. Comme configure doit
              être lancé par la cible build de debian/rules, l'utilisation de  « dpkg-buildpackage  -rfakeroot »
              gère correctement ce problème.

BOGUES

       open()  n'est  pas  simulé.  Ce  n'est  pas  si grave que cela, mais si un programme invoque open("file",
       O_WRONLY, 000), écrit dans ce fichier « file », le ferme, puis réessaye ensuite de l'ouvrir  en  lecture,
       alors  cette  tentative  échouera, car les droits du fichier seront 000. Le bogue, c'est que si root fait
       cette opération, alors open() fonctionne, puisque les droits des fichiers ne sont pas  du  tout  vérifiés
       pour root. Il a été choisi de ne pas simuler open(), car open() est utilisé par nombre d'autres fonctions
       de la libc (dont certaines qui sont déjà simulées par fakeroot), ce qui créerait des boucles (ou pourrait
       en créer quand l'implémentation des diverses fonctions de la libc change).

COPIES

       fakeroot est distribué sous la licence GNU General Public License. (GPL 2.0 ou supérieure).

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  écrite  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                                    5 October 2014                                      fakeroot(1)