Attention la manipulation de la commande chmod
en récursif est une opération dangereuse.
Soyez très prudent lorsque vous modifiez de manière récursive les autorisations des fichiers ou des répertoires
Sous Linux lorsque vous essayez de créer ou de modifier un fichier et que vous obtenez une erreur du type « Autorisation refusée », en règle générale, cela indique un problème lié à des autorisations insuffisantes.
Ces problèmes peuvent être résolus en corrigeant les autorisations des répertoires ou des fichiers.
Linux est un système multi-utilisateur et l’accès aux fichiers est contrôlé via des attributs de fichiers. Cela garantit que seuls les utilisateurs et processus autorisés puissent accéder aux fichiers et aux répertoires.
Pour plus d’informations sur les autorisations de fichiers, consultez la documentation sur umask.
man umask
Voici comment modifier de manière récursive les autorisations des fichiers et des répertoires.
Attention la manipulation de la commande chmod
en récursif est une opération dangereuse.
Soyez très prudent lorsque vous modifiez de manière récursive les autorisations des fichiers ou des répertoires
Chmod récursif
La commande chmod
vous permet de modifier les permissions 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 la commande chmod
avec l’option -R
(--recursive
).
La syntaxe générale pour modifier récursivement les autorisations du fichier est la suivante :
chmod -R MODE RÉPERTOIRE
Par exemple, pour modifier les autorisations de tous les fichiers et sous-répertoires du répertoire /var/www/html
en 755
, vous utiliserez :
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
Attention, l’exemple donné est un cas facile. Le dossier dont on parle appartement généralement à l’utilisateur root
et ne contenant pas de fichier exécutable. Le cas général n’est pratiquement pas traitable de manière automatique.
Dans note cas seul root
, le propriétaire du fichier ou l’utilisateur avec des privilèges sudo peuvent modifier les autorisations d’un fichier.
Attention la manipulation de la commande chmod
en récursif est une opération dangereuse.
Soyez très prudent lorsque vous modifiez de manière récursive les autorisations des fichiers ou des répertoires
Utilisation de la commande find
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 d’autorisation d’exécution, alors que vous devez définir des autorisations d’exécution sur les répertoires pour pouvoir 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 en 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 {} \;
La commande find
recherche des fichiers ou des répertoires sous /var/www/html
et transmet chaque fichier ou répertoire trouvé à la commande chmod
pour définir les autorisations.
Lorsque vous utilisez find
avec -exec
, la commande chmod
est exécutée pour chaque entrée trouvée. Utilisez la commande xargs
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
Attention la manipulation de la commande chmod
en récursif est une opération dangereuse.
Soyez très prudent lorsque vous modifiez de manière récursive les autorisations des fichiers ou des répertoires
ᦿ