La propiedad y los permisos son dos cosas diferentes. La -p
bandera conserva los permisos . En los sistemas * nix, los usuarios normales no pueden cambiar la propiedad del archivo a un usuario que no sea ellos mismos.
Como se explica aquí :
Solo los procesos con una ID de usuario efectiva igual a la ID de usuario del archivo o con los privilegios apropiados pueden cambiar la propiedad de un archivo. Si _POSIX_CHOWN_RESTRICTED está vigente para la ruta:
Cambiar la ID de usuario está restringido a procesos con los privilegios apropiados.
Se permite cambiar la ID de grupo a un proceso con una ID de usuario efectiva igual a la ID de usuario del archivo, pero sin los privilegios apropiados, si y solo si el propietario es igual a la ID de usuario del archivo o (uid_t) -1 y el grupo es igual ya sea al ID de grupo efectivo del proceso de llamada o a uno de sus ID de grupo suplementarios.
La razón detrás de esto ha sido bien explicada por @Gilles en esta respuesta de Unix y Linux:
La razón de esta restricción es que regalar un archivo a otro usuario puede permitir que sucedan cosas malas en situaciones poco comunes pero importantes. Por ejemplo:
- Si un sistema tiene cuotas de disco habilitadas, Alice podría crear un archivo de escritura mundial en un directorio accesible solo para ella (para que nadie más pueda acceder a ese directorio de escritura mundial), y luego ejecutar chown para que ese archivo sea propiedad de otro usuario Bill . El archivo entonces contaría bajo la cuota de disco de Bill, aunque solo Alice puede usar el archivo.
- Si Alice le regala un archivo a Bill, no hay rastro de que Bill no haya creado ese archivo. Esto puede ser un problema si el archivo contiene datos ilegales o comprometedores.
- Algunos programas requieren que su archivo de entrada pertenezca a un usuario en particular para autenticar una solicitud (por ejemplo, el archivo contiene algunas instrucciones que el programa realizará en nombre de ese usuario). Por lo general, este no es un diseño seguro, porque incluso si Bill creó un archivo que contiene instrucciones sintácticamente correctas, es posible que no haya tenido la intención de ejecutarlas en este momento en particular. Sin embargo, permitir que Alice cree un archivo con contenido arbitrario y lo tome como entrada de Bill solo puede empeorar las cosas.
Entonces, incluso si usa la --same-owner
bandera de tar , aún necesitará extraer los archivos root
para preservar la propiedad. Esa bandera está activada por defecto para root
, así que lo que quieres es:
sudo tar xpf foo.tgz
tar
que no podrá hacerlo también. Por favor dime si esto funcionó.