Provided by: fakeroot_1.18.2-1_i386 bug


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


       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]


       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

       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/*      som     laddas     genom
       LD_PRELOAD-mekanismen hos den dynamiska länkaren (se

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


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

       --faked binr
              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.


       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
       $ fakeroot /bin/bash
       #  whoami
       # 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


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


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


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


              Fakeroot is  implemented  by  wrapping  system  calls.  This  is
              accomplished  by  setting  LD_LIBRARY_PATH=/usr/lib/fakeroot and
     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


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

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

              touch foo
              ls -al foo

              eller omvänt,

              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

       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.


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


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


       joost witteveen

       Clint Adams

       Timo Savola


       David Weinehall <>


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


       faked(1)                dpkg-buildpackage(1),                debuild(1)