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
኿