Provided by: fakeroot_1.20.2-1ubuntu1_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  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))

       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-*.so The shared library containing the wrapper functions.

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