Gestion des droits sous Linux
Rappel :
Fondamental : chmod
La commande chmod
permet de modifier l'attribution des droits d'un fichier ou d'un dossier. Pour cela on ressort d'un côté nos trois types d'utilisateurs : le user propriétaire u
, le group propriétaire g
et les others o
, et d'un autre côté les trois droits read, write et execute.
On donne a chmod
les modifications que l'on souhaite apporter puis la liste des fichiers/dossiers auquel l'appliquer. Une modification de droit est décrite par [usertype][action][permissions]
où :
usertype
estu
g
ouo
(oua
pour all)action
est+
-
ou=
pour ajouter, retirer ou fixer des permissionspermissions
estr
w
oux
Exemple :
$ ls -l index.html
-rw-rw---- 1 antoine antoine 8578 janv. 22 09:34 index.html
$ chmod a=r index.html
$ ls -l index.html
-r--r--r-- 1 antoine antoine 8578 janv. 22 09:34 index.html
$ chmod +x index.html
$ ls -l index.html
-r-xr-xr-x 1 antoine antoine 8578 janv. 22 09:34 index.html
$ chmod o-rx index.html
$ ls -l index.html
-r-xr-x--- 1 antoine antoine 8578 janv. 22 09:34 index.html
Alternativement, les administrateurs système hirsutes préfèrent attribuer 3 nombres de 0 à 7 correspondant aux 3 types d'utilisateurs tel que :
r vaut 4, w vaut 2, x vaut 1 (ce sont des puissances de 2 pour ceux qui voudraient une petite explication de comment ça marche n'hésitez pas !) ;
on somme les droits que l'on veut cumuler.
Ainsi on peut régler tous les droits de tous les types d'utilisateurs d'un coup mais c'est moins intuitif.
Exemple :
chmod 640 file
donne les droits rw (4+2) à user, r (4) à group et aucun droit (0) à others.chmod 775 file
donne les droits rwx (4+2+1) à user et group et rx (4+1) à others.
Méthode : Droits courant pour un fichier (non exécutable)
chmod 666 file
(fichier non exécutable public)chmod 644 file
(fichier non exécutable public, modifiable par soi uniquement)chmod 600 file
(fichier privé)chmod 400 file
(fichier privé en lecture seule)chmod 444 file
(fichier public en lecture seule)
Droits courant pour un dossier (et de son contenu)
chmod 777 dir
(dossier public)
chmod 755 dir
(dossier public, modifiable par soi uniquement)
chmod 700 dir
(dossier privé)
chmod 500 dir
(dossier privé en lecture seule)
chmod 555 dir
(dossier public en lecture seule)
Complément : chmod -R Changer les droits de tout un répertoire
chmod -R XXX dir
affecte les droit XXX à dir et à tous les fichiers et sous-dossiers de dir (récursivement).
Complément : chown : Changer les propriétaires d'un fichier
chown user:group target
permet de donner la propriété de target à l'utilisateur user et au groupe group.