J'emballe un dossier avec beaucoup de sous-dossiers et de fichiers dans Windows avec 7zip, télécharge sur VPS et puis lance la commande:
tar -xvzf file.tar.gz
alors tous les fichiers et dossiers décompressés ont les autorisations de 777. Comment puis-je l'obtenir pour que les dossiers aient les autorisations de 755 et les fichiers 644?
linux
file-permissions
tar
Kaspar L. Palgi
la source
la source
Réponses:
Si vous exécutez en
tar(1)
tant qu'utilisateur normal, il appliquera votreumask
par défaut. Si vous utiliseztar(1)
asroot
, vous pouvez donner une--no-same-permissions
option de ligne de commande pour demandertar(1)
de respecter leumask
.Donc: soit exécutez ceci en tant qu'utilisateur normal:
ou exécutez ceci comme
root
:Vous voudrez peut - être coller
umask 022
dans votre~/.bashrc
,~/.bash_profile
ou~/.profile
. (Voir labash(1)
page de manuel pour plus de détails sur les fichiers de démarrage. C'est compliqué.)Les détails sur
umask
peuvent être trouvés dans la page de manuel de votre shell, la page de manuel de l'umask(2)
appel système ou laumask(1posix)
page de manuel de l'utilitaire fourni par POSIX (si vous l'avezmanpages-posix
installé).la source
Exécutez les commandes suivantes à la racine du répertoire pour définir les autorisations souhaitées pour vos répertoires et fichiers:
Soyez conscient de l'espace entre le crochet bouclé de fermeture et la barre oblique arrière
la source
\;
Si vous utilisez X majuscule,
chmod
vous pouvez l'utiliser pour définir les autorisations d'exécution uniquement sur les répertoires. c'est à direla source
J'ai trouvé cette solution qui a fonctionné pour moi. Pour les dossiers et sous-dossiers:
Et pour tous les fichiers (également dans les dossiers et sous-dossiers):
Tous les commentaires sont les bienvenus si ce n'est pas une bonne façon de procéder. Je viens de commencer à apprendre Linux.
Après les commentaires, une solution plus robuste qui gère bien les caractères spéciaux serait:
la source
the': No such file or directory chmod: cannot access
Logo.txt ': Aucun fichier ou répertoire de ce type chmod: ne peut pas accéder à `./blog/wp-content/themes/OneRoom/LOGO': Pas de fichier ou di rectory777
est dangereux et ne s'applique qu'à une très petite minorité de systèmes.find . -type f -print0 | xargs -0 chmod 644
. Le-name "*"
n'est pas nécessaire etxargs(1)
analysera les noms de fichiers sur les espaces ou les retours à la ligne à moins que vous n'utilisiez le-0
- qui analyse les noms de fichiers sur leNUL
caractère ASCII , qui ne peut pas apparaître dans les noms de fichiers. Le-print0
forfind(1)
lui demande de formater sa sortie dans un mode adapté à l'xargs -0
entrée.trouver . -type f -exec chmod 644 {} \;
la source