sudo apt-get install fakeroot
Actually very similar examples are in the man page, too.
/tmp/test-fakeroot$ fakeroot bash root@cscfpc:/tmp/test-fakeroot# mkdir dir1 dir1/dir2 root@cscfpc:/tmp/test-fakeroot# find . -ls 1310950 4 drwxrwxr-x 3 root root 4096 May 30 15:40 . 1310951 4 drwxrwxr-x 3 root root 4096 May 30 15:40 ./dir1 1310952 4 drwxrwxr-x 2 root root 4096 May 30 15:40 ./dir1/dir2 root@cscfpc:/tmp/test-fakeroot# mkdir dev root@cscfpc:/tmp/test-fakeroot# mknod dev/sda9 b 8 9 root@cscfpc:/tmp/test-fakeroot# ls -ld dev/sda9 brw-rw-r-- 1 root root 8, 9 May 30 15:40 dev/sda9 root@cscfpc:/tmp/test-fakeroot# touch dir1/file1 root@cscfpc:/tmp/test-fakeroot# ls -ld dir1/file1 -rw-rw-r-- 1 root root 0 May 30 15:40 dir1/file1 root@cscfpc:/tmp/test-fakeroot# chown cscf-adm:adm dir1/file1 root@cscfpc:/tmp/test-fakeroot# touch dir1/dir2/file2 root@cscfpc:/tmp/test-fakeroot# chown games:games dir1/dir2/file2 root@cscfpc:/tmp/test-fakeroot# tar cf t.tar . tar: ./t.tar: file is the archive; not dumped root@cscfpc:/tmp/test-fakeroot# exit exit /tmp/test-fakeroot$ tar tvf t.tar drwxrwxr-x root/root 0 2016-05-30 15:41 ./ drwxrwxr-x root/root 0 2016-05-30 15:40 ./dir1/ drwxrwxr-x root/root 0 2016-05-30 15:41 ./dir1/dir2/ -rw-rw-r-- games/games 0 2016-05-30 15:41 ./dir1/dir2/file2 -rw-rw-r-- cscf-adm/adm 0 2016-05-30 15:40 ./dir1/file1 drwxrwxr-x root/root 0 2016-05-30 15:40 ./dev/ brw-rw-r-- root/root 8,9 2016-05-30 15:40 ./dev/sda9 /tmp/test-fakeroot$ find . -ls 1310950 4 drwxrwxr-x 4 arpepper arpepper 4096 May 30 15:41 . 1310951 4 drwxrwxr-x 3 arpepper arpepper 4096 May 30 15:40 ./dir1 1310952 4 drwxrwxr-x 2 arpepper arpepper 4096 May 30 15:41 ./dir1/dir2 1310956 0 -rw-rw-r-- 1 arpepper arpepper 0 May 30 15:41 ./dir1/dir2/file2 1310955 0 -rw-rw-r-- 1 arpepper arpepper 0 May 30 15:40 ./dir1/file1 1310953 4 drwxrwxr-x 2 arpepper arpepper 4096 May 30 15:40 ./dev 1310954 0 -rw-r--r-- 1 arpepper arpepper 0 May 30 15:40 ./dev/sda9 1310957 12 -rw-rw-r-- 1 arpepper arpepper 10240 May 30 15:41 ./t.tar /tmp/test-fakeroot$An oddity is that, although arpepper is in group adm the group membership did not get set. That's presumably because the joint
chown
call failed. To wit..
/tmp/test-fakeroot$ fakeroot chgrp adm /tmp/test-fakeroot/dir1/file1 /tmp/test-fakeroot$ ls -ld /tmp/test-fakeroot/dir1/file1 -rw-rw-r-- 1 arpepper adm 0 May 30 15:40 /tmp/test-fakeroot/dir1/file1 /tmp/test-fakeroot$
-- AdrianPepper - 2016-05-30