#
🔨 La gestion des droits sous GNU/Linux
Un système d'exploitation GNU/Linux a trois types d'utilisateurs et trois type de droits distincts. Cette page explique et présente les options les plus souvent utilisées pour des scripts et plus précisément la gestion de dossiers et fichiers de sites web sur un serveur Apache sous Linux.
Pour un complément d'information vous pouvez consulter les documentations d'ubuntu-fr.org:
#
📍 La commande CHmod
Les types d'utilisateurs:
- Le propriétaire du fichier (user)
- Le groupe du propriétaire du fichier (group)
- Les autres utilisateurs, ou encore le reste du monde (others)
Les types de droits:
- r : droit de lecture (read)
- w : droit d'écriture (write)
- x : droit d'exécution (eXecute)
#
🧮 Correspondances des droits en binaire/octale et leurs significations
Ainsi pour modifier les droits de façon octale, la meilleure façon pour être certain du résultat, est d'additionner ceux-ci.
Par exemple : changer les droits du fichier "monscript" pour que je sois (moi le propriétaire) le seul à pouvoir le modifier, que les personnes de mon groupe puissent le lire comme l'exécuter et que le reste du monde puisse uniquement l'exécuter :
Modifier les droits sur monscript
:
sudo chmod 751 monscript
#
📚 Récapitulatif des différentes valeurs possibles fréquemment utilisées
644 - Lecture, écriture pour le propriétaire / Lecture pour les autres.
Valeur par défaut d'un fichier sous GNU/Linux.
666 - Lecture, écriture pour tout le monde, déconseillé
700 - Lecture, écriture, execution juste pour le propriétaire
Valeur par défaut d'un dossier sous GNU/Linux
705 - Le propriétaire à tous les droits / Le groupe aucun / Les autres lire et executer
Préconisé par certains providers pour le répertoire du site, si celui-ci est inaccessible (message : "Forbidden...")
755 - Le propriétaire à tous les droits / Les autres lire et executer
Utile pour des scripts par exemple et certains fichiers d'un site web
764 - Tous droits pour le propriétaire / Lecture, écriture pour le groupe / Lecture seule pour les autres
Parfois utile pour des fichiers d'un site web appartenant au groupe www-data
774 - Tous les droits pour le propriétaire et le groupe / Lecture seule pour les autres
Utile pour certains fichiers d'un site sur un serveur local de développement
775 - Tous les droits pour le propriétaire et le groupe / Lecture et exécution pour les autres
Très pratique pour se simplifier la vie avec la gestion d'un site en développement sur un serveur local (dans le dossier media)
777 - Tous les droits pour tous
Fortement déconseillé ! Mais peut-être nécessaire pour le cache de CMS en local (par exemple) sur un serveur Lamp
Pour modifier les droits d'un répertoire et de ses sous répertoires, utilisez la fonction récursive -R
Modifier le répertoire /var/www/html/monsite avec les droits modifiés en 755:
sudo chmod -R 755 /var/www/html/monsite
#
📋 Afficher les droits d'un répertoire
Les droits des fichiers d'un dossier peuvent être affichés par la commande "ls -l"
Afficher les droits des fichiers du dossier /var/www/html/monsite:
ls -l /var/www/html/monsite
#
📑 Format des droits
Le format des droits d'accès est une liste de 10 symboles.
Le 1er symbole est soit un "-" soit un "l" soit un "d", ils indiquent s'il s'agit:
d'un fichier (-)
d'un lien (l)
ou d'un dossier (d).
Ensuite suivent les trois groupes des trois symboles des permissions (rwx-). Par exemple:
-rw-r--r--
signifie que c'est un fichier dont les droits sont définis 644
drwx------
signifie que c'est un dossier dont les droits sont définis en 700
lrwxrwxrwx
signifie que c'est un lien dont les droits sont définis en 777
#
✔️ L'avantage du CHown
Pour éviter des chmod 666 (ou pire encore des 777), CHown permet de modifier le propriétaire d'un fichier.
Si vous souhaitez vous réaproprier les droits sur l'ensemble d'un dossier et que vous êtes l'utilisateur "martin":
sudo chown -R martin /chemin/vers/dossier
Récupérer les droits sur l'ensemble du dossier:
sudo chmod -R 755 /chemin/vers/dossier