Provided by: fakeroot_1.18.2-1_i386 bug

NOMBRE

       fakeroot  -  ejecuta  una orden en un entorno que falsea privilegios de
       superusuario para la manipulacion 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'ON

       fakeroot ejecuta una orden en un entorno  donde  parece  que  se  tiene
       permisos  de  superusuario  para la manipulacion de ficheros. Util para
       permitir a usuarios crear archivos (tar, ar, .deb  etc.)  con  ficheros
       con   permisos/propietarios   de   superusuario.    Sin   fakeroot  uno
       necesitaria  privilegios  de  superusuario  para  crear  los   ficheros
       constituyentes  del archivo con los permisos y propietario correctos, y
       despues  empaquetarlos,  o  uno  tendria  que  construir  los  archivos
       directamente, sin usar el archivador.

       fakeroot  reemplaza  las  funciones de la biblioteca de manipulacion 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 dinamico. (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 mayoria  de  ellas  buscan  fallos  de
       versiones  viejas  de  fakeroot). Si estas pruebas fallan (por ejemplo,
       porque tiene ciertos programas libc5 en el sistema), tambien fallara la
       construccion  de otros paquetes mediante fakeroot, pero de formas mucho
       mas sutiles.

       Ademas, dese cuenta que es mejor no  realizar  la  compilacion  de  los
       binarios  bajo  fakeroot. Especialmente configure y demas 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
              analisis 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 mas tarde  usando
              -i.  Sin  embargo, este fichero fallara y fakeroot se comportara
              de forma extrana a menos que no modifique los  ficheros  creados
              (N.T.  del ingles touched, haciendo referencia a la orden touch,
              con la que fakeroot crea algunos ficheros  vacios  para  simular
              algunas  situaciones)  dentro  del  entorno fakeroot cuando este
              fuera del entorno. Aun asi, esto puede ser  util.  Por  ejemplo,
              puede  usarse  con rsync(1) para guardar y restaurar el arbol de
              directorios completo con la informacion de  usuarios,  grupos  y
              dispositivos   completa   sin  necesidad  de  ser  superusuario.
              Consulte    /usr/share/doc/fakeroot/README.saving    para    mas
              detalles.

       -i fichero-a-cargar
              Carga   un  entorno  fakeroot  de  fichero-a-cargar  previamente
              salvado usando -s.  Note que esto  no  salva  implicitamente  el
              fichero,  use  tambien -s para conseguir esto. Es seguro usar el
              mismo fichero para -i y -s en una misma invocacion 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 (solo en modo TCP). Fd
              es el numero minimo de descriptor de fichero  a  usar  para  las
              conexiones  TCP, puede ser importante para evitar conflictos con
              los descriptores de ficheros usados por  programas  ejecutandose
              dentro de fakeroot.

       -h     Muestra la ayuda.

       -v     Muestra la version.

EJEMPLOS

       Aqui hay un ejemplo de una sesion con fakeroot.  Dese cuenta que dentro
       de un  entorno  fakeroot  la  manipulacion  de  ficheros  que  requiere
       privilegios  de superusuario se realiza con exito, 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

       Solo las operaciones que el usuario joost puede hacer se llevan a  cabo
       realmente.

       fakeroot  se  escribio  especificamente  para  permitir que los usuario
       pudiesen crear paquetes (en el formato deb(5) ) sin  tener  privilegios
       de superusuario.  Esto puede hacerse con ordenes como dpkg-buildpackage
       -rfakeroot   o   debuild   -rfakeroot   (realmente,    -rfakeroot    es
       predeterminado  en  debuild  en  estos momentos, asi 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 ejecucion conectara automaticamente
              con  ese  demonio,  y  tendra  la  misma  vision  "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 esta 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,
              deberan   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 version de la biblioteca de C del mismo fakeroot.

       open()/create()
              fakeroot  no  envuelve  open(),  create(),  etc.  Asi, 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  omision,  esta  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 mas funciones, e intenta  hacer
              mas cosas que fakeroot . Se vio que una pequena actualizacion de
              libc (de una donde la funcion 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  dificil,  pero  una  vez
              arreglado,  es  cuestion  de  tiempo  antes  de que otra funcion
              empiece a usar open(), ni hablar  de  portarlo  a  otro  sistema
              operativo.  Asi  que  decidi  reducir  al  maximo  el  numero 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, llevaran a
              fakeroot tan al limite que sera este el que  se  confunda).  Asi
              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, haciendolo 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 sera 000. El fallo es que si el
       superusuario hace lo mismo, open()   sera  satisfactorio,  ya  que  los
       permisos  del  fichero  no se comprueban para el superusuario. Elegi no
       envolver open(), ya que open() se usa en muchas otras funciones de libc
       (incluso  en  aquellas  que  ya estan envueltas), de forma que se crean
       bucles (o posibles bucles futuros, cuando la implementacion  de  varias
       funciones de libc cambie ligeramente).

COPIA

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

AUTORES

       joost witteveen
              <joostje@debian.org>

       Clint Adams
              <clint@debian.org>

       Timo Savola

TRADUCTOR

       Traduccion de Ruben Porras Campo <debian-l10n-spanish@lists.debian.org>

P'AGINA DEL MANUAL

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

V'EASE ADEM'AS

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