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