fakeroot-sysv

fakeroot(1)                    Manuel de Debian                    fakeroot(1)



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)