Si vous utilisez Linux comme système d'exploitation principal ou si vous gérez des serveurs Linux, vous rencontrerez une situation où vous essayez de créer ou de modifier un fichier et recevez une erreur "Autorisation refusée". En règle générale, les erreurs liées à des autorisations insuffisantes peuvent être résolues en définissant les autorisations ou la propriété correctes des fichiers.
Linux est un système multi-utilisateurs et l'accès aux fichiers est contrôlé par les autorisations, les attributs et la propriété des fichiers. Cela garantit que seuls les utilisateurs et les processus autorisés peuvent accéder aux fichiers et aux répertoires.
Pour plus d'informations sur les autorisations de fichiers, voir "Commande Umask sous Linux".
Dans cet article, nous expliquerons comment modifier de manière récursive les autorisations des fichiers et des répertoires.
Chmod Récursif #
Le chmod
La commande vous permet de modifier les autorisations des fichiers en utilisant le mode symbolique ou numérique.
Pour opérer de manière récursive sur tous les fichiers et répertoires d'un répertoire donné, utilisez le chmod
commande avec le -R
, (--recursive
) option. La syntaxe générale pour modifier récursivement les autorisations du fichier est la suivante :
chmod -R MODE DIRECTORY
Par exemple, pour modifier les autorisations de tous les fichiers et sous-répertoires sous le /var/www/html
répertoire vers 755
vous utiliseriez :
chmod -R 755 /var/www/html
Le mode peut également être spécifié à l'aide de la méthode symbolique :
chmod -R u=rwx,go=rx /var/www/html
Uniquement root, le propriétaire du fichier ou l'utilisateur avec sudo
les privilèges peuvent modifier les autorisations d'un fichier. Soyez très prudent lorsque vous modifiez de manière récursive les autorisations des fichiers.
Utilisation de find
Commande #
En général, les fichiers et répertoires ne doivent pas avoir les mêmes autorisations. La plupart des fichiers ne nécessitent pas l'autorisation d'exécution, alors que vous devez définir des autorisations d'exécution sur les répertoires afin d'y accéder.
Le scénario le plus courant consiste à modifier de manière récursive les autorisations du fichier du site Web en 644
et les autorisations du répertoire à 755
.
En utilisant la méthode numérique :
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
En utilisant la méthode symbolique :
find /var/www/html -type d -exec chmod u=rwx,go=rx {} \;
find /var/www/html -type f -exec chmod u=rw,go=r {} \;
Le find
la commande recherche des fichiers ou des répertoires sous /var/www/html
et passe chaque fichier ou répertoire trouvé au chmod
commande pour définir les autorisations.
Lors de l'utilisation de find
avec -exec
, le chmod
La commande est exécutée pour chaque entrée trouvée. Utilisez le xargs
commande pour accélérer l'opération en passant plusieurs entrées à la fois :
find /var/www/html -type d -print0 | xargs -0 chmod 755
find /var/www/html -type f -print0 | xargs -0 chmod 644
Conclusion #
Le chmod
commande avec le -R
options vous permet de modifier de manière récursive les autorisations du fichier.
Pour définir de manière récursive les autorisations des fichiers en fonction de leur type, utilisez chmod
en combinaison avec le find
commande.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.