Преобразовать tar в cpio без рутирования?

Если вы собираетесь взаимодействовать со средой Windows, вам следует избегать заглавных букв, потому что Windows все будет вводить в нижний регистр. Чаще всего возникает обратная проблема; ссылка на Page_2.html найдет page_2.html в Windows, но не будет работать в Unix.

3
22.05.2018, 11:00
2 ответа

Puedes usarfakeroot. Como su nombre lo dice, falsifica al usuario raíz, al interceptar varias llamadas al sistema con un envoltorio de biblioteca LD_LIBRARY_PATH/ LD_PRELOAD, para que el proceso crea que se está ejecutando como raíz. Esto ha sido creado con el propósito de compilar y empaquetar aplicaciones sin tener que ser root, incluido el uso de make install, que normalmente se ejecutaría como root. Es especialmente adecuado para crear archivos.

Durante esto, se ejecutará un demonio bifurcadofakedpara recordar todos los derechos de propiedad de archivos falsos o información sobre archivos especiales que los procesos secundarios creen que crearon. Entonces, todas las operaciones deben realizarse en la misma "instancia", o fakedsaldrá y olvidará lo que estaba recordando.

$ fakeroot
# tar xf...
# find foo... | cpio -o...
# exit
$ 

Otro ejemplo que muestra la interacción 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
3
27.01.2020, 21:21

Попробуйте использовать bsd tar (, а не GNU tar)--магия состоит в том, чтобы поместить @перед именем файла архива:

bsdtar --format=cpio -cf - @root.tar.gz > root.cpio
1
18.04.2020, 22:41

Теги

Похожие вопросы