fakeroot-sysv

fakeroot(1)                      Manual Debian                     fakeroot(1)



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 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
       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 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 (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 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 linkado
              à 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 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 October 2014                     fakeroot(1)