Provided by: fakeroot_1.33-1_amd64 bug

NOMBRE

       fakeroot  -  ejecuta una orden en un entorno que falsea privilegios de superusuario para la manipulación
       de ficheros

SINOPSIS

       fakeroot  [-l|--lib  biblioteca]  [--faked  binario-faked]  [-i  fichero-a-cargar]  [-s  fichero-salvado]
       [-u|--unknown-is-real ] [-b|--fd-base ] [-h|--help ] [-v|--version ] [--] [orden]

DESCRIPCIÓN

       fakeroot  ejecuta  una  orden  en  un  entorno donde parece que se tiene permisos de superusuario para la
       manipulación de ficheros. Útil para permitir a  usuarios  crear  archivos  (tar,  ar,  .deb  etc.)  con
       ficheros  con  permisos/propietarios  de  superusuario.   Sin  fakeroot  uno  necesitarÃa  privilegios de
       superusuario para crear los ficheros constituyentes del archivo con los permisos y propietario correctos,
       y después empaquetarlos, o uno tendrÃa que construir los archivos directamente, sin usar el archivador.

       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  pretende construir paquetes usando fakeroot, es aconsejable construir primero el paquete fakeroot: la
       etapa "debian/rules build" tiene algunas comprobaciones (la mayorÃa de ellas buscan fallos  de  versiones
       viejas  de  fakeroot).  Si  estas pruebas fallan (por ejemplo, porque tiene ciertos programas libc5 en el
       sistema), también fallará la construcción de otros paquetes mediante fakeroot, pero  de  formas  mucho
       más sutiles.

       Además,  dese  cuenta  que  es  mejor  no  realizar  la  compilación  de  los  binarios  bajo fakeroot.
       Especialmente configure y demás programas del estilo no se comportan bien cuando el sistema se  comporta
       de  forma  diferente a la esperada. (o, de forma aleatoria, estos programas eliminan algunas variables de
       entorno, algunas de las cuales necesita fakeroot).

OPCIONES

       -l biblioteca, --lib biblioteca
              Especifica una biblioteca envoltorio.

       --faked binario
              Especifica un binario alternativo a usar en vez de faked.

       [--] orden
              Cualquier orden que quieras ejecutar bajo fakeroot. Use ‘--’ si en la orden tiene  otras  opciones
              que puedan confundir el análisis de las opciones de fakeroot.

       -s fichero-salvado
              Guarda  el  entorno fakeroot en fichero-salvado al salir. Este fichero puede usarse para restaurar
              el entorno más tarde usando -i. Sin embargo, este fichero fallará y fakeroot se  comportará  de
              forma  extraña  a menos que no modifique los ficheros creados (N.T. del inglés touched, haciendo
              referencia a la orden touch, con la que fakeroot crea algunos ficheros vacÃos para simular algunas
              situaciones) dentro del entorno fakeroot cuando esté fuera del entorno. Aun asÃ, esto  puede  ser
              útil.  Por  ejemplo,  puede usarse con rsync(1) para guardar y restaurar el árbol de directorios
              completo con la información de usuarios, grupos y dispositivos  completa  sin  necesidad  de  ser
              superusuario. Consulte /usr/share/doc/fakeroot/README.saving para más detalles.

       -i fichero-a-cargar
              Carga  un  entorno  fakeroot  de fichero-a-cargar previamente salvado usando -s.  Note que esto no
              salva implÃcitamente el fichero, use también -s para conseguir esto.  Es  seguro  usar  el  mismo
              fichero para -i y -s en una misma invocación de fakeroot.

       -u, --unknown-is-real
              Usa  el propietario real para ficheros desconocidos previamente por fakeroot en vez de suponer que
              pertenecen a root:root.

       -b fd  Especifica el descriptor de fichero base  (sólo  en  modo  TCP).  Fd  es  el  número  mÃnimo  de
              descriptor  de fichero a usar para las conexiones TCP, puede ser importante para evitar conflictos
              con los descriptores de ficheros usados por programas ejecutándose dentro de fakeroot.

       -h     Muestra la ayuda.

       -v     Muestra la versión.

EJEMPLOS

       Aquà hay un ejemplo de una sesión con fakeroot.  Dese cuenta  que  dentro  de  un  entorno  fakeroot  la
       manipulación  de ficheros que requiere privilegios de superusuario se realiza con éxito, pero realmente
       no se lleva a cabo.

       $  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

       Sólo las operaciones que el usuario joost puede hacer se llevan a cabo realmente.

       fakeroot se escribió especÃficamente para permitir que  los  usuario  pudiesen  crear  paquetes  (en  el
       formato  deb(5)  )  sin  tener  privilegios  de  superusuario.   Esto  puede  hacerse  con  órdenes como
       dpkg-buildpackage -rfakeroot o debuild -rfakeroot (realmente, -rfakeroot es predeterminado en debuild  en
       estos momentos, asà que no necesita el argumento).

ASPECTOS DE SEGURIDAD

       fakeroot  es un programa normal, sin el bit setuid. No aumenta los privilegios de un usuario ni disminuye
       la seguridad del sistema.

FICHEROS

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

ENTORNO

       FAKEROOTKEY
              La llave usada para comunicarse con el demonio  fakeroot.  Cualquier  programa  comenzado  con  el
              LD_PRELOAD  correcto  y la FAKEROOTKEY de un demonio en ejecución conectará automáticamente con
              ese demonio, y tendrá la misma visión "falsa" de los permisos/propietarios de los  ficheros  del
              sistema. (sumiendo que el demonio y el programa que se conecta los ejecute el mismo usuario).

       LD_LIBRARY_PATH

       LD_PRELOAD
              Fakeroot  está  implementado envolviendo las llamadas al sistema. Esto se realiza modificando las
              variables  de   entorno   de   forma   que   queden   como   LD_LIBRARY_PATH=/usr/lib/fakeroot   y
              LD_PRELOAD=libfakeroot.so.0.  Esa  biblioteca se carga antes que la biblioteca de C del sistema, y
              de esa forma se interceptan  gran  parte  de  las  llamadas  al  sistema.  Si  necesita  modificar
              LD_LIBRARY_PATH  o LD_PRELOAD dentro de un entorno fakeroot, deberán quedar establecidos de forma
              relativa, como en LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/foo/bar/

LIMITACIONES

       Versiones de la biblioteca
              Toda orden ejecutada con fakeroot necesita enlazarse con la misma versión de la biblioteca  de  C
              del mismo fakeroot.

       open()/create()
              fakeroot no envuelve open(), create(), etc. AsÃ, que si el usuario joost hace

              touch tal
              fakeroot
              ls -al tal

              o del otro modo,

              fakeroot
              touch tal
              ls -al tal

              fakeroot  no  puede  saber  en  el primer caso que, el propietario de tal realmente debe ser joost
              mientras que en el segundo debe ser root.  Para los paquetes Debian,  dar  a  todos  los  ficheros
              "desconocidos"  uid=gid=0  por  omisión,  está siempre bien. La forma real de solucionar esto es
              envolver open() y create(), pero esto crea otros problemas, como demuestra el  paquete  libtricks.
              Este  paquete  envuelve  más  funciones, e intenta hacer más cosas que fakeroot . Se vio que una
              pequeña actualización de libc (de una donde la función stat() no usaba open() a otra en la  que
              stat()  usaba (en algunas ocasiones)  open()), causaba violaciones de segmento inexplicables (esto
              es, el stat() de libc6 llamaba el open() envuelto, que luego llamaba al  stat()  de  libc6,  etc).
              Arreglarlo  no  fue  tan difÃcil, pero una vez arreglado, es cuestión de tiempo antes de que otra
              función empiece a usar open(), ni hablar de portarlo a otro sistema  operativo.  Asà  que  decidÃ
              reducir  al máximo el número de funciones envuelta por fakeroot, para limitar la probabilidad de
              ‘colisiones’.

       GNU configure (y otros programas por el estilo)
              fakeroot, en efecto, cambia el comportamiento del sistema. Los programas que prueban  el  sistema,
              como  GNU configure, pueden verse confundidos por esto (o si no lo hacen, llevarán a fakeroot tan
              al lÃmite que será este el que se confunda). Asà que  es  aconsejable  no  ejecutar  el  objetivo
              "configure"  en  un  entorno  fakeroot.  Como  configure  debe ejecutarse en "debian/rules build",
              "dpkg-buildpackage -rfakeroot" tiene cuidado de esto, haciéndolo correctamente.

FALLOS

       No envuelve open(). Esto no es malo por si mismo, pero si  un  programa  hace  open("fichero",  O_WRONLY,
       000),  escribe  en "fichero", lo cierra, y trata de abrirlo de nuevo para leer el fichero, entonces falla
       al abrirlo, ya que el modo del fichero será 000. El fallo es que  si  el  superusuario  hace  lo  mismo,
       open()  será satisfactorio, ya que los permisos del fichero no se comprueban para el superusuario. ElegÃ
       no  envolver  open(),  ya que open() se usa en muchas otras funciones de libc (incluso en aquellas que ya
       están envueltas), de forma que se crean bucles (o posibles bucles futuros, cuando la implementación  de
       varias funciones de libc cambie ligeramente).

COPIA

       fakeroot se distribuye bajo la Licencia Pública General de GNU.  (GPL 2.0 o posterior).

AUTORES

       joost witteveen
              <joostje@debian.org>

       Clint Adams
              <clint@debian.org>

       Timo Savola

TRADUCTOR

       Traducción de Rubén Porras Campo <debian-l10n-spanish@lists.debian.org>

PÁGINA DEL MANUAL

       la  mayor  parte de J.H.M. Dassen <jdassen@debian.org> con muchas modificaciones y añadiduras de joost y
       Clint.

VÉASE ADEMÁS

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

Proyecto Debian                                  5 October 2014                                      fakeroot(1)