Provided by: fakeroot_1.20.2-1ubuntu1_amd64 bug

NOME

       fakeroot  -  corre  um  comando  num  ambiente  onde  falsifica  privilégios  de root para
       manipulação de ficheiro

SINOPSE

       fakeroot [-l|--lib biblioteca] [--faked binário-falsificado] [-i load-file] [-s save-file]
       [-u|--unknown-is-real ] [-b|--fd-base ] [-h|--help ] [-v|--version ] [--] [comando]

DESCRIÇÃO

       fakeroot  corre  um  comando  num  ambiente  onde  aparenta  ter  privilégios de root para
       manipulação de ficheiro. Isto é útil para permitir aos utilizadores criar  arquivos  (tar,
       ar,  .deb  etc.)  com  ficheiros dentro com permissões/posse de root. Sem o fakeroot seria
       preciso ter privilégios de root para criar os ficheiros constituintes dos arquivos com  as
       permissões  e posse actuais, e depois empacotá-los, ou seria preciso construir os arquivos
       directamente, sem usar o arquivador.

       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))

       Se você pretende compilar pacotes com o fakeroot, por  favor  tente  primeiro  compilar  o
       pacote  fakeroot: a fase "debian/rules build" tem alguns testes (testar principalmente por
       bugs em antigas versões do fakeroot). Se esses testes falharem (por  exemplo  porque  você
       tem  certos  programas  da  libc5  no  seu  sistema),  os outros pacotes que compile com o
       fakeroot irão muito provavelmente falhar também, mas possivelmente de maneiras muito  mais
       subtis.

       Note  também  que,  é  melhor não fazer a compilação dos próprios binários sob o fakeroot.
       Especialmente o configure e "amigos" não gostam quando o sistema  subitamente  comporta-se
       de  modo  diferente  do  que  eles esperam, (ou, eles aleatoriamente desconfiguram algumas
       variáveis de ambiente, algumas das quais o fakeroot precisa).

OPÇÕES

       -l biblioteca, --lib biblioteca
              Especifica uma biblioteca wrapper alternativa.

       --faked binário
              Especifica um binário alternativo para usar como falsificado.

       [--] comando
              Qualquer comando que deseje corre como fakeroot. Use ‘--’ se no  comando  você  tem
              outras opções que podem confundir a análise de opções do fakeroot.

       -s save-file
              Guarda  o  ambiente  do  fakeroot  para o save-file ao sair. Este ficheiro pode ser
              usado para restaurar o ambiente mais tarde usando -i. No entanto, este ficheiro irá
              ter  fugas e o fakeroot irá comportar-se com modos estranhos a menos que você deixe
              os ficheiros que foram "mexidos" dentro do fakeroot, isolados e inalterados  quando
              fora  do ambiente. Mesmo assim, isto pode ser útil. Por exemplo, pode ser usado com
              o rsync(1) para salvaguardar  e  restaurar  árvores  de  directórios  inteiras  com
              informações  de utilizador, grupo e dispositivo sem a necessidade de ser root. Veja
              /usr/share/doc/fakeroot/README.saving para mais detalhes.

       -i load-file
              Carrega um ambiente  do  fakeroot  previamente  guardado  usando  -s  a  partir  de
              load-file.  Note  que  isto não salva implicitamente o ficheiro, use -s também para
              esse comportamento. E seguro usar o mesmo ficheiro para ambos -i e  -s  numa  única
              invocação do fakeroot.

       -u, --unknown-is-real
              Usa a posse real dos ficheiros anteriormente desconhecida para o fakeroot em vez de
              fingir que eles são posse de root:root.

       -b fd  Especifica a base fd (modo TCP apenas). O fd  é  o  número  descritor  de  ficheiro
              mínimo  usado para ligações TCP; isto pode ser importante para evitar conflitos com
              os descritores de ficheiro usados pelos programas que correm sob o fakeroot.

       -h     Mostra a ajuda.

       -v     Mostra a versão.

EXEMPLOS

       Aqui está uma sessão exemplo com o fakeroot. Note que dentro do ambiente de root  falso  a
       manipulação  de  ficheiro que requer privilégios de root tem sucesso, mas na realidade não
       está a acontecer.

       $  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

       Apenas os efeitos que o utilizador joost podia fazer aconteceram de verdade.

       fakeroot foi especificamente escrito para permitir aos utilizadores criarem pacotes Debian
       GNU/Linux  (no  formato  deb(5)) sem lhes dar privilégios de root. Isto pode ser feito por
       comandos como dpkg-buildpackage -rfakeroot ou debuild -rfakeroot (na realidade, -rfakeroot
       é predefinição no debuild nos dias que correm, por isso você não precisa desse argumento).

ASPECTOS DE SEGURANÇA

       fakeroot  é  um programa regular, não-setuid. Não aumenta os privilégios do utilizador nem
       baixa a segurança do sistema.

FICHEIROS

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

AMBIENTE

       FAKEROOTKEY
              A chave usada para comunicar com o daemon do fakeroot. Qualquer programa  arrancado
              com  o  LD_PRELOAD  correcto e um FAKEROOTKEY de um daemon em execução irá ligar-se
              automaticamente   a   esse   daemon,   e   terá   a   mesma   visão   "falsa"   das
              permissões/propriedades  do  sistema  de  ficheiros.  (assumindo  que  o daemon e o
              programa que se liga foram arrancados pelo mesmo utilizador).

       LD_LIBRARY_PATH

       LD_PRELOAD
              Fakeroot é implementado ao envolver chamadas  do  sistema.  Isto  é  conseguido  ao
              definir   LD_LIBRARY_PATH=/usr/lib/fakeroot   e  LD_PRELOAD=libfakeroot.so.0.  Essa
              biblioteca é carregada antes da biblioteca C do sistema,  e  assim  a  maioria  das
              funções  da  biblioteca  são  interceptadas  por  ela.  Você  precisa de definir ou
              LD_LIBRARY_PATH ou LD_PRELOAD  de  dentro  de  um  ambiente  fakeroot,  deverá  ser
              definido      em      relação      aos     caminhos     fornecidos,     como     em
              LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/foo/bar/

LIMITAÇÕES

       Versões de biblioteca
              Cada comando executado dentro do fakeroot precisa de ser ligado por  link  à  mesma
              versão de biblioteca C do próprio fakeroot.

       open()/create()
              O fakeroot não envolve o open(), create(), etc. Então, se o utilizador joost também
              o fizer

              touch foo
              fakeroot
              ls -al foo

              ou do outro modo contrário,

              fakeroot
              touch foo
              ls -al foo

              No primeiro caso o fakeroot não tem maneira de saber isso, o  dono  de  foo  deverá
              realmente  ser  joost  enquanto  no  segundo  caso  deveria  ter  sido root. Para o
              empacotamento de Debian, a predefinição de dar a todos os ficheiros "desconhecidos"
              uid=gid=0,  está  sempre OK. A maneira real para contornar isto é envolver open() e
              create(), mas isso cria outros problemas, como demonstrado pelo  pacote  libtricks.
              Este  pacote  envolvia  muitas  mais  funções,  e tentava fazer muito mais do que o
              fakeroot .. Aconteceu que uma actualização menor da libc  (de  um  caso  em  que  a
              função  stat()  não usava open() para um com uma função stat() que usava (em alguns
              casos) open()), veio a causar falhas de segmentação inexplicáveis (isto é, o stat()
              da  libc6  chamava  o open() envolvido, o qual iria então chamar a stat() da libc6,
              etc.). Corrigir isto não foi lá muito fácil, mas após  corrigido,  foi  apenas  uma
              questão  de  tempo antes de outra função passar a usar open(), e esqueçam de tentar
              portá-lo para outro sistema operativo diferente. Assim Eu decidi manter o número de
              funções   envolvidas  pelo  fakeroot  o  mais  pequeno  possível,  para  limitar  a
              possibilidade de ‘colisões’.

       configure do GNU (e outros programas como tal)
              O fakeroot, efectivamente, está a alterar  o  modo  como  o  sistema  se  comporta.
              Programas  que  sondam  o  sistema como o configure do GNU podem ficar confusos por
              isto (ou se não ficarem, podem "stressar" o fakeroot tanto que o  próprio  fakeroot
              possa  ficar  confuso). Portanto, é aconselhável não correr o "configure" de dentro
              do fakeroot. Como o configure deverá ser  chamado  na  meta  "debian/rules  build",
              correr "dpkg-buildpackage -rfakeroot" actualmente toma conta disto.

BUGS

       Não  envolve  open(). Isto não e mau por si próprio, mas se um programa fizer open("file",
       O_WRONLY, 000), escrever no ficheiro "file" e o fechar, e depois tentar abri-lo para ler o
       ficheiro,  então  essa  abertura vai falhar, pois o modo do ficheiro será 000. O bug é tal
       que se o root fizer  o  mesmo,  open()  irá  ter  sucesso,  pois  as  permissões  não  são
       verificadas  para  o  root. Eu escolhi não envolver open(), pois open() é usado por muitas
       outras funções na libc (mesmo aquelas que  já  estão  envolvidas),  assim  criando  ciclos
       viciosos  (ou  possíveis  ciclos futuros, quando a implementação de várias funções da libc
       mudarem ligeiramente).

COPIAR

       fakeroot é distribuído sob a  GNU General Public License.  (GPL 2.0 ou superior).

AUTORES

       joost witteveen
              <joostje@debian.org>

       Clint Adams
              <clint@debian.org>

       Timo Savola

TRADUTOR

       Américo Monteiro <a_monteiro@gmx.com>

PÁGINA DE MANUAL

       a maioria por J.H.M. Dassen <jdassen@debian.org> Bastantes modificações/adições por  joost
       e Clint.

VEJA TAMBÉM

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