web-dev-qa-db-fra.com

Décompresser un fichier tout en obtenant les autorisations appropriées?

J'ai décompressé un fichier sur mon serveur en utilisant:

unzip filename

Cependant, cela semble avoir causé à tous les fichiers des autorisations de propriétaire/groupe de 0 0.

Les fichiers que j'ai téléchargés étaient un script logiciel PHP. Je me demande donc comment définir correctement les autorisations lorsque je décompresse les fichiers et à quoi ils doivent être définis.

15
Brett

Zip ne prend pas en charge l'enregistrement de la propriété/de l'autorisation du fichier, pour autant que je sache. Vous pouvez essayer de définir l’umask afin que le fichier de décompression crée les fichiers avec ces autorisations. Courir

umask 644

avant unzip.

9
lawl0r

En fait, certaines réponses ne sont pas correctes. Les fichiers Zip peuvent également avoir des autorisations de fichiers. (*) Vous pouvez lister les permissions des fichiers dans votre fichier Zip avec:

unzip -Z

Peut-être que l'outil que vous avez utilisé pour créer le fichier Zip n'a pas stocké les autorisations ou ne les a pas stockées correctement.

Donc, si vous avez créé le fichier Zip vous-même , vérifiez l’outil avec lequel vous avez créé le fichier Zip. Il est peut-être possible de définir des autorisations avant de compresser (comme avec maven), ou de conserver les autorisations d'origine (mais cela ne fonctionnerait que sur un système prenant en charge les autorisations, c'est-à-dire pas sous Windows).

Si vous n'avez pas créé le fichier Zip vous-même , votre seule chance est de définir les autorisations correctes après la décompression, par exemple avec

chmod -R [permissions] [directory]

(*) Nous utilisons cette fonctionnalité en combinaison avec le plugin maven Assembly, dans lequel vous pouvez spécifier le mode de fichier pour les fichiers contenus dans le fichier Zip.

19
David Tanzer