Eu gostaria de criar um arquivo tar com conteúdo pertencente a um par proprietário: grupo que não existe no sistema a partir do qual o arquivo está sendo criado.
Aqui está a direção que tentei:
tar ca --owner='otherowner' --group='othergroup' mydata.tgz mydata
E ao executar este comando, recebo o seguinte erro:
tar: otherowner: Invalid owner
tar: Error is not recoverable: exiting now
Existe uma maneira de forçar o tar a aceitar o grupo owner:, mesmo que nenhum deles exista no sistema a partir do qual o arquivo está sendo criado?
permissions
users
tar
David
fonte
fonte
Respostas:
O Linux não usa nomes e proprietários de grupos internamente, mas números - UIDs e GIDs. Os nomes de usuários e grupos são mapeados a partir do conteúdo dos arquivos / etc / passwd e / etc / group para conveniência do usuário. Como você não tem uma entrada de 'outro proprietário' em nenhum desses arquivos, o Linux não sabe realmente qual UID e GID deve ser atribuído a um arquivo. Vamos tentar passar um número:
Parece funcionar.
fonte
-tvf
sinalizadores. Para visualizar os atuais números de arquivos em um arquivo usar um comando como este:$ tar --numeric-owner -tvf archive.tar
--numeric-owner
sinalização. O mais interessante é que você pode definir ambos usando--owner=name:1234
ou--group=groupname:4711
. Fonte: função parse_owner_group do código fonte tarAdicione os parâmetros
--no-same-owner --no-same-permissions
comtar
. Dê uma olhada nos documentos .fonte
Aqui está um pedaço de código para substituir o usuário / grupo por IDs rapidamente:
fonte