commande tar : modifie le propriétaire du répertoire courant de travail

Le
poulacou
J'ai un comportement auquel je ne m'attendais pas et surtout très
dangereux !

(on évitera les remarques : il ne faut pas le faire dans ce
répertoire, pas en root, et pourquoi ci j'avais une raison !)

$> ls -l /root
drwxr-x 9 root root 4096 Jan 23 17:16 root

$> cd /root
$> tar xvf mon_package.tar
$> ls -l /root
drwxr-x 9 1254 123 4096 Jan 23 17:17 root

L'utilisateur et le groupe du répertoire courant ont changés.

$> tar tvf mon_package.tar | more
drwxr-xr-x vabld/vabld 0 2008-12-16 19:22:03 ./
drwxr-xr-x vabld/vabld 0 2008-12-09 07:46:53 ./update/


en gros le tar modifie le répertoire courant par le ./ et on ne le
remarque que difficilement .

Je trouve que ça peut être très dangereux suivant le répertoire ou
l'on travaille (etc, opt, root, var)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric Levenez
Le #18603021
Le 06/02/09 15:28, dans
« poulacou »
en gros le tar modifie le répertoire courant par le ./ et on ne le
remarque que difficilement ....



C'est une information qui date de 30 ans :->

En effet il ne faut pas sauvegarder ".", et cela depuis que tar sauvegarde
les droits des fichiers (les premières versions ne sauvegardaient que les
fichiers purs et n'avaient pas ce problème).

Ainsi au lieu de faire

cd toto ; tar cf /tmp/foo.tar .

Il faut faire

tar cf /tmp/foo.tar toto

Dans le cas où le tar a été sauvegardé avec ".", il faut faire un truc du
genre :

mkdir truc ; cd truc ; tar xf /tmp/foo.tar

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.
Publicité
Poster une réponse
Anonyme