Comment changer tous les fichiers en 644 et tous les dossiers en 755 à l'aide chmod
de l' linux
invite de commande? (Terminal)
terminal
command-prompt
chmod
hugo der hungrige
la source
la source
http://superuser.com
:: P mais cette question m'a aidé ici, merci.chmod -R u+rwX,go+rX,go-w /foo
Réponses:
Une approche pourrait être d'utiliser find:
pour les répertoires
pour les fichiers
la source
sudo find /your/location -type f -exec chmod 644 {} \;
pour les fichiers etsudo find /your/location -type d -exec chmod 755 {} \;
pour les répertoireschmod -R a=r,u+w,a+X /foo
?unable to execute /bin/chmod: Argument list too long
Le moyen le plus simple est de faire:
ce qui signifie essentiellement:
à
ch
ange fichiermod
es-R
ecursively en donnant:u
ser:r
ead,w
rite et eX
ecute permissions,g
roup eto
autres utilisateurs:r
lisez etX
exécutez les autorisations, mais pas les-w
autorisations de rite.Veuillez noter que
X
cela rendra un répertoire exécutable, mais pas un fichier, à moins qu'il ne soit déjà interrogeable / exécutable.Veuillez vérifier
man chmod
pour plus de détails.Voir aussi: Comment chmod tous les répertoires sauf les fichiers (récursivement)? à SU
la source
Le plus court que je pourrais trouver est:
qui fonctionne sur GNU / Linux, et je crois sur Posix en général (d'après ma lecture de: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html ).
Ce que cela fait est:
Il est important de noter que l'autorisation de l'étape 1 efface tous les bits d'exécution, de sorte que l'étape 3 n'ajoute que des bits d'exécution pour les répertoires (jamais les fichiers). De plus, les trois étapes se produisent avant qu'un répertoire ne soit récuré dans (donc ce n'est pas équivalent à eg
puisque le a = r supprime x des répertoires, alors chmod ne peut pas les rentrer.)
la source
Le plus facile à retenir pour moi, ce sont deux opérations:
Le + X n'affecte que les répertoires.
la source
Sur https://help.directadmin.com/item.php?id=589, ils écrivent:
Si vous avez besoin d'un moyen rapide de réinitialiser vos données public_html à 755 pour les répertoires et 644 pour les fichiers, vous pouvez utiliser quelque chose comme ceci:
J'ai testé et ... ça marche!
la source
Cela a fonctionné pour moi:
la source
find /A -type X -exec chmod Y '{}' \;
Faites les deux en un seul passage avec:
Comme dans, recherchez le type f OU tapez d, et faites le premier ... pour les fichiers et le second ... pour les répertoires. Plus précisément:
Laissez le
--changes
si vous voulez qu'il fonctionne silencieusement.la source
Si vous avez besoin d'un moyen rapide de réinitialiser vos données public_html à 755 pour les répertoires et 644 pour les fichiers, vous pouvez utiliser quelque chose comme ceci:
de plus, si vous savez que PHP fonctionne en tant qu'utilisateur et non en tant que "apache", vous pouvez définir les fichiers PHP sur 600, pour un niveau de sécurité supplémentaire, par exemple:
Vous pouvez trouver cette source ici: https://help.directadmin.com/item.php?id=589
la source
Cela peut aussi fonctionner:
la source