Provided by: fakeroot_1.37.1-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  library] [--faked faked-binary] [-i load-file] [-s save-file] [-u|--unknown-is-real]
       [-b|--fd-base] [-h|--help] [-v|--version] [--] [command]

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.

       Also, note that it's best not to do the building of the binaries themselves  under  fakeroot.  Especially
       configure  and  friends  don't like it when the system suddenly behaves differently from what they expect
       (or, they randomly unset some environment variables, some of which fakeroot needs).

OPÇÕES

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

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

       [--] comando
              Any command you want to be run as fakeroot. Use ‘--’ if in the command you have other options that
              may confuse fakeroot's option parsing.

       -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 was specifically written to enable users to create Debian  GNU/Linux  packages  (in  the  deb(5)
       format)  without  giving  them  root  privileges.   This  can  be done by commands like dpkg-buildpackage
       -rfakeroot or debuild -rfakeroot (actually, -rfakeroot is default in debuild nowadays, so you don't  need
       that argument).

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
              The  key  used  to  communicate  with  the  fakeroot  daemon.  Any  program started with the right
              LD_PRELOAD and a FAKEROOTKEY of a running daemon will automatically connect to  that  daemon,  and
              have  the  same  "fake"  view of the file system's permissions/ownerships (assuming the daemon and
              connecting program were started by the same user).

       LD_LIBRARY_PATH

       LD_PRELOAD
              fakeroot  is  implemented  by  wrapping  system  calls.    This   is   accomplished   by   setting
              LD_LIBRARY_PATH=/usr/lib/fakeroot  and LD_PRELOAD=libfakeroot.so.0.  That library is loaded before
              the system's C library, and so most of the library functions are intercepted by it.  If  you  need
              to  set  either LD_LIBRARY_PATH or LD_PRELOAD from within a fakeroot environment, it should be set
              relative to the given paths, as in 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

              fakeroot  has  no  way  of knowing that in the first case, the owner of foo really should be joost
              while the second case it should have been root.  For the Debian packaging,  defaulting  to  giving
              all  "unknown"  files  uid=gid=0,  is  always  OK.  The real way around this is to wrap open() and
              create(), but that creates other problems, as demonstrated by the libtricks package. This  package
              wrapped many more functions, and tried to do a lot more than fakeroot . It turned out that a minor
              upgrade  of  libc  (from  one  where  the stat()  function didn't use open()  to one with a stat()
              function that did (in some cases) use open() ), would cause unexplainable segfaults (that is,  the
              libc6  stat()   called the wrapped open() , which would then call the libc6 stat() , etc).  Fixing
              them wasn't all that easy, but once fixed, it was just a matter of time  before  another  function
              started  to  use  open(),  never  mind  trying  to port it to a different operating system. Thus I
              decided to keep the number of functions wrapped by fakeroot as small as  possible,  to  limit  the
              likelihood of ‘collisions’.

       GNU configure (and other such programs)
              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

       mostly  by  J.H.M. Dassen <jdassen@debian.org> with rather a lot of modsifications and additions by joost
       and Clint.

VEJA TAMBÉM

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

Projecto Debian                                    2024-12-19                                        fakeroot(1)