Você pode usar fakeroot
. Como o nome diz, ele falsifica o usuário root, interceptando syscalls de servidor com um wrapper de biblioteca LD_LIBRARY_PATH
/ LD_PRELOAD
, para que o processo acredite que está sendo executado como root. Isso foi criado com o propósito de construir e empacotar aplicativos sem ter que ser root, incluindo o uso de make install
, que normalmente seria executado como root. É especialmente adequado para criar arquivos.
Durante isso, um daemon bifurcado faked
será executado para lembrar todos os direitos de propriedade de arquivos falsos ou informações sobre arquivos especiais que os processos filhos acreditam ter feito. Assim, todas as operações devem ser feitas na mesma "instância", ou faked
sairá e esquecerá do que estava lembrando.
$ fakeroot
# tar xf ...
# find foo ... | cpio -o ...
# exit
$
Outro exemplo mostrando a interação de faked
:
$ mknod /tmp/vaporware b 8 0
mknod: /tmp/vaporware: Operation not permitted
$ fakeroot
# mknod /tmp/vaporware b 8 0
# ls -l /tmp/vaporware
brw-r--r-- 1 root root 8, 0 May 18 08:33 /tmp/vaporware
# exit
$ ls -l /tmp/vaporware
-rw-r--r--. 1 user user 0 May 18 08:33 /tmp/vaporware