Provided by: fakeroot_1.36-1_amd64 bug

NOME

       fakeroot - corre um comando num ambiente onde finge 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
       ficheiros.  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 atuais, e depois empacota-los, ou seria
       preciso construir os arquivos diretamente, sem usar o arquivador.

       fakeroot funciona ao substituir as funções da biblioteca de manipulação de ficheiros  (chmod(2),  stat(2)
       etc.),  por outras que simulam o efeito que teriam as funções da biblioteca real, caso o utilizador fosse
       realmente o root. Estas funções envolventes estão numa biblioteca partilhada  /usr/lib/*/libfakeroot-*.so
       ou  localização  semelhante  na  sua  plataforma.  O  objecto partilhado é carregado através do mecanismo
       LD_PRELOAD do carregador dinâmico. (Veja 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  compilem  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 se comporta de modo diferente do que eles
       esperam, (ou, eles desconfiguram aleatoriamente algumas  variáveis  de  ambiente,  algumas  das  quais  o
       fakeroot necessita).

OPÇÕES

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

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

       [--] 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  de modo estranho a menos que você deixe os ficheiros que foram "mexidos" dentro
              do fakeroot, isolados e inalterados quando fora do ambiente. Mesmo assim, isto  poderá  ser  útil.
              Por  exemplo,  pode  ser  usado com o rsync(1) para salvaguardar e restaurar árvores de diretó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 (apenas modo TCP). 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 fingido de root 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 normal, não-setuid. Não aumenta os privilégios do utilizador nem baixa a segurança
       do sistema.

FICHEIROS

       /usr/lib/*/libfakeroot-*.so A biblioteca partilhada que contém as funções wrapper.

AMBIENTE

       FAKEROOTKEY
              A chave usada para comunicar  com  o  daemon  do  fakeroot.  Qualquer  programa  arrancado  com  o
              LD_PRELOAD  correto  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
              ‘collisions’.

       configure do GNU (e outros programas como tal)
              O  fakeroot, efectivamente, está a alterar o modo como o sistema se comporta. Programas que testam
              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 é 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

Projecto Debian                               5 de Outubro de 2014                                   fakeroot(1)