Me gustaría crear un archivo tar con contenido que pertenezca a un propietario: par de grupos que no existen en el sistema desde el que se está creando el archivo.
Aquí está la dirección que he intentado:
tar ca --owner='otherowner' --group='othergroup' mydata.tgz mydata
Y cuando ejecuto este comando, aparece el siguiente error:
tar: otherowner: Invalid owner
tar: Error is not recoverable: exiting now
¿Hay alguna forma de obligar a tar a aceptar el propietario: grupo, aunque ninguno de ellos exista en el sistema desde el que se crea el archivo?
permissions
users
tar
David
fuente
fuente
Respuestas:
Linux no utiliza internamente propietarios y nombres de grupos, sino números: UID y GID. Los nombres de usuarios y grupos se asignan a partir de los contenidos de / etc / passwd y / etc / group para conveniencia del usuario. Como no tiene la entrada 'otherowner' en ninguno de esos archivos, Linux en realidad no sabe qué UID y GID deben asignarse a un archivo. Intentemos pasar un número en su lugar:
Parece funcionar.
fuente
-tvf
banderas. Para ver los números actuales de los archivos en un archivo, utilice un comando como este:$ tar --numeric-owner -tvf archive.tar
--numeric-owner
bandera. Lo que es más interesante es que puedes configurar ambos usando--owner=name:1234
o--group=groupname:4711
. Fuente: función parse_owner_group del código fuente tarAgregue los params
--no-same-owner --no-same-permissions
contar
. Echa un vistazo a los documentos .fuente
Aquí hay un fragmento de código para reemplazar el usuario / grupo con identificadores sobre la marcha:
fuente