dwww Home | Manual pages | Find package

fakeroot(1)                    Manuel de Debian                    fakeroot(1)

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

SYNOPSIS
       fakeroot [-l|--lib bibliothèque] [--faked binairedesimulation] [-i  fi-
       chier-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 fi-
       chiers. C'est pratique pour permettre aux utilisateurs de créer des ar-
       chives (tar, ar, .deb, etc.) qui contiennent des fichiers avec les pri-
       vilèges et appartenances du superutilisateur. Sans  fakeroot,  il  fau-
       drait 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 li-
       brary 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 construc-
       tion 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 at-
       tendent (parfois, ils modifient aléatoirement des variables  d'environ-
       nement dont fakeroot a besoin).

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

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

       [--] commande
              La commande à lancer sous fakeroot. Utilisez « -- »  si des  op-
              tions de la commande risque d'être confondues avec celles de fa-
              keroot.

       -s fichier-de-sauvegarde
              Enregistre l'environnement de  fakeroot  dans  fichier-de-sauve-
              garde  en quittant. Ce fichier pourra servir plus tard à restau-
              rer 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 restric-
              tion, 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  fa-
              keroot  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 incon-
              nus 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 fi-
              chier 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  re-
       quiè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  -rfa-
       keroot  (-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'aug-
       mente  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 environne-
              ment fakeroot, cela devrait être fait en respectant  l'ordre  de
              placement,   par   exemple  comme  dans  LD_LIBRARY_PATH=$LD_LI-
              BRARY_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'utili-
              sateur 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 nou-
              velle version dans laquelle la  fonction  stat()  utilise  (dans
              certains  cas)  open()), causera d'inexplicables erreurs de seg-
              mentation (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 correcte-
              ment 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à si-
       mulé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/DE-
       BUG

Projet Debian                   5 October 2014                     fakeroot(1)

Generated by dwww version 1.15 on Sat Jun 29 01:35:26 CEST 2024.