Permissions Linux (chmod, chown)
Lire un ls -l, la notation octale de chmod (755, 644…) et chown : de quoi arrêter de taper 777 par réflexe.
Lire une ligne de ls -l
-rwxr-xr-- 1 ana devs 4096 10 sept. 09:00 script.sh
| Bloc | Sens |
|---|---|
- |
type (- fichier, d dossier, l lien symbolique) |
rwx |
droits du propriétaire |
r-x |
droits du groupe |
r-- |
droits des autres |
r = lecture (4) · w = écriture (2) · x = exécution (1)
chmod : notation octale
chmod 755 script.sh # rwx r-x r-x (propriétaire tout, les autres lisent+exécutent) chmod 644 fichier.txt # rw- r-- r-- (propriétaire lit/écrit, les autres lisent) chmod 600 secret.env # rw- --- --- (propriétaire seul) chmod -R 755 dossier/ # récursif sur un dossier
chmod : notation symbolique
chmod u+x script.sh # ajouter l'exécution pour le propriétaire (u) chmod g-w fichier.txt # retirer l'écriture pour le groupe (g) chmod o=r fichier.txt # fixer les droits des autres (o) à lecture seule chmod a+r fichier.txt # a = tout le monde (u+g+o)
chown : changer le propriétaire
chown ana fichier.txt # changer le propriétaire chown ana:devs fichier.txt # changer propriétaire et groupe chown -R ana:devs dossier/ # récursif
chmod 777 (tout le monde peut tout faire) est presque toujours une mauvaise idée, surtout sur un serveur : préférez le droit minimum nécessaire (souvent 755 pour les dossiers/exécutables, 644 pour les fichiers de données).
Bits spéciaux : setuid, setgid, sticky bit
| Notation | Effet |
|---|---|
chmod u+s fichier |
setuid : s'exécute avec les droits du propriétaire |
chmod g+s dossier |
setgid : les nouveaux fichiers héritent du groupe du dossier |
chmod +t dossier |
sticky bit : seul le propriétaire d'un fichier peut le supprimer, même si le dossier est accessible en écriture à tous (cas de /tmp) |
drwxrwxrwt 12 root root 4096 ... /tmp
Le t final indique le sticky bit.
Merci pour votre retour !