Je voudrais créer un fichier tar avec un contenu appartenant à un propriétaire: paire de groupes qui n'existe pas sur le système à partir duquel le fichier est créé.
Voici la direction que j'ai essayée:
tar ca --owner='otherowner' --group='othergroup' mydata.tgz mydata
Et lors de l'exécution de cette commande, j'obtiens l'erreur suivante:
tar: otherowner: Invalid owner
tar: Error is not recoverable: exiting now
Existe-t-il un moyen de forcer tar à accepter le propriétaire: groupe, même si aucun d'eux n'existe sur le système à partir duquel le fichier est créé?
permissions
users
tar
David
la source
la source
Réponses:
Linux n'utilise pas en interne les noms des propriétaires et des groupes mais des numéros - UID et GID. Les noms des utilisateurs et des groupes sont mappés à partir du contenu des fichiers / etc / passwd et / etc / group pour la commodité de l'utilisateur. Puisque vous n'avez pas d'entrée «autre propriétaire» dans aucun de ces fichiers, Linux ne sait pas réellement quel UID et GID doivent être attribués à un fichier. Essayons plutôt de passer un nombre:
Cela semble fonctionner.
la source
-tvf
drapeaux. Pour afficher les numéros actuels des fichiers dans une archive, utilisez une commande comme celle-ci:$ tar --numeric-owner -tvf archive.tar
--numeric-owner
drapeau. Ce qui est plus intéressant, c'est que vous pouvez définir les deux en utilisant--owner=name:1234
ou--group=groupname:4711
. Source: fonction parse_owner_group du code source tarAjoutez les paramètres
--no-same-owner --no-same-permissions
avectar
. Jetez un œil aux documents .la source
Voici un morceau de code pour remplacer l'utilisateur / groupe avec des identifiants à la volée:
la source