Provided by: fakeroot_1.18.2-1_amd64 bug

NAMN

       fakeroot - utför ett kommando i en miljö som fejkar root-privilegier för filmanipulation

SYNOPSIS

       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]

BESKRIVNING

       fakeroot runs a command in an environment wherein it appears to have root  privileges  for
       file  manipulation.  This  is  useful for allowing users to create archives (tar, ar, .deb
       etc.) with files in them with root permissions/ownership. Without fakeroot one would  need
       to  have  root privileges to create the constituent files of the archives with the correct
       permissions and ownership, and then pack them up, or  one  would  have  to  construct  the
       archives directly, without using the archiver.

       fakeroot  arbetar  genom  att  ersätta biblioteksfunktionerna för filrättighetsmodifiering
       (chmod(2),  stat(2),  osv)  med   sådana   som   simulerar   effekten   som   de   riktiga
       biblioteksfunktionerna skulle ha haft om användaren verkligen varit root. Dessa funktioner
       finns    samlade    i    biblioteket    /usr/lib/libfakeroot.so*    som    laddas    genom
       LD_PRELOAD-mekanismen hos den dynamiska länkaren (se ld.so(8))

       Om   du  planerar  att  bygga  paket  med  hjälp  av  fakeroot,  försök  först  att  bygga
       fakeroot-paketet: "debian/rules build"-stadiet har ett par tester  (som  mestadels  testar
       efter  buggar  i gamla versioner av fakeroot). Om dessa tester misslyckas (till exempel på
       grund av att du har vissa libc5-program på ditt system) så är det  troligt  att  du  också
       kommer  att  misslyckas bygga andra paket, och det är möjligt att dessa fel blir betydligt
       svårare att hitta.

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

FLAGGOR

       -l library, --lib library
              Ange ett alternativt bibliotek med ersättningsfunktioner.

       --faked binär
              Ange en alternativ binär att använda istället för faked(1).

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

       -s save-file
              Save the fakeroot environment to save-file on  exit.  This  file  can  be  used  to
              restore  the  environment later using -i. However, this file will leak and fakeroot
              will behave in odd ways unless you leave the  files  touched  inside  the  fakeroot
              alone  when outside the environment. Still, this can be useful. For example, it can
              be used with rsync(1) to back up and restore whole directory  trees  complete  with
              user,   group   and   device   information   without   needing   to  be  root.  See
              /usr/share/doc/fakeroot/README.saving for more details.

       -i load-file
              Load a fakeroot environment previously saved using -s  from  load-file.  Note  that
              this  does  not  implicitly save the file, use -s as well for that behaviour. Using
              the same file for both -i and -s in a single fakeroot invocation is safe.

       -u, --unknown-is-real
              Use the  real  ownership  of  files  previously  unknown  to  fakeroot  instead  of
              pretending they are owned by root:root.

       -b fd  Specify  fd  base  (TCP mode only). fd is the minimum file descriptor number to use
              for TCP connections; this may  be  important  to  avoid  conflicts  with  the  file
              descriptors used by the programs being run under fakeroot.

       -h     Display help.

       -v     Display version.

EXEMPEL

       Här  är  ett exempel på hur fakeroot kan användas. Notera att i den fejkade root-miljön så
       lyckas filmanipulering som kräver root-privilegier, trots att den egentligen inte utförs.

       $  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

       Enbart de operationer som användaren joost skulle kunna ha genomfört som sig själv  utförs
       på riktigt.

       fakeroot   skrevs   speciellt  i  syfte  att  ge  användare  möjlighet  att  skapa  Debian
       GNU/Linux-paket (i deb(5) format) utan att  behöva  root-privilegier.  Detta  kan  utföras
       genom kommandon såsom dpkg-buildpackage -rfakeroot eller debuild -rfakeroot (-rfakeroot är
       numera standard i debuild, så du behöver inte ens använda den parametern).

SÄKERHETSASPEKTER

       fakeroot är ett  vanligt  program  utan  setuid.  Det  ger  inte  användaren  några  extra
       privilegier, och minskar inte systemets säkerhet.

FILER

       /usr/lib/libfakeroot/libfakeroot.so*     Det     delade     bibliotek    som    innehåller
       ersättningsfunktionerna.

MILJÖ

       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/

BEGRÄNSNINGAR

       Biblioteksversioner
              Every  command  executed  within fakeroot needs to be linked to the same version of
              the C library as fakeroot itself.

       open()/create()
              fakeroot doesn't wrap open(), create(), etc. So, if user joost does either

              touch foo
              fakeroot
              ls -al foo

              eller omvänt,

              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 (och liknande program)
              fakeroot,  in  effect,  is changing the way the system behaves. Programs that probe
              the system like GNU configure may get confused by this (or if they don't, they  may
              stress  fakeroot so much that fakeroot itself becomes confused). So, it's advisable
              not to run "configure" from within fakeroot. As configure should be called  in  the
              "debian/rules build" target, running "dpkg-buildpackage -rfakeroot" correctly takes
              care of this.

BUGGAR

       It doesn't wrap open(). This isn't bad by itself,  but  if  a  program  does  open("file",
       O_WRONLY, 000), writes to file "file", closes it, and then again tries to open to read the
       file, then that open fails, as the mode of the file will be 000. The bug is that  if  root
       does  the  same,  open()  will  succeed, as the file permissions aren't checked at all for
       root. I choose not to wrap open(), as open() is used by many other functions in libc (also
       those  that  are already wrapped), thus creating loops (or possible future loops, when the
       implementation of various libc functions slightly change).

LICENS

       fakeroot distribueras under GNU General Public License. (GPL 2.0 eller senare).

FÖRFATTARE

       joost witteveen
              <joostje@debian.org>

       Clint Adams
              <clint@debian.org>

       Timo Savola

ÖVERSÄTTNING

       David Weinehall <tao@kernel.org>

MANUALSIDA

       mostly by J.H.M. Dassen <jdassen@debian.org> Rather a  lot  mods/additions  by  joost  and
       Clint.

SE ÄVEN

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