Provided by: fakeroot_1.12.4ubuntu1_i386 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  reemplaza  las  funciones de la biblioteca de manipulación de
       ficheros (chmod(2), stat(2) etc.) por otras que simulan el efecto  real
       que  hubiesen  tenido  dichas  funciones,  si  el  usuario hubiese sido
       realmente el superusuario. Estas funciones envoltorio se encuentran  en
       la biblioteca compartida /usr/lib/libfakeroot.so* que se carga mediante
       el mecanismo LD_PRELOAD del cargador dinámico. (Consulte 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/libfakeroot.so*  La  biblioteca   compartida   que
       contiene las funciones envoltorio.

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
              <schizo@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