Appearance
Fiche de Révision : Gestion des Permissions sous Linux
1. Concepts de Base
Trois Permissions :
r(read / lecture) : Voir le contenu d'un fichier / lister un répertoire.w(write / écriture) : Modifier un fichier / ajouter ou supprimer dans un répertoire.x(execute / exécution) : Lancer un fichier / traverser un répertoire.
Trois Catégories d'Utilisateurs :
u(user) : Le propriétaire du fichier.g(group) : Les membres du groupe propriétaire.o(others) : Tous les autres utilisateurs.
Visualisation : Commande
ls -l- rw- r-- r-- 1 user group 1024 Dec 15 10:30 fichier.txt | --- --- --- | | | | | | | -> o (Autres) | | -> g (Groupe) | -> u (Propriétaire) -> Type (- = fichier, d = répertoire)
2. Modification des Permissions : chmod
Notation Symbolique (lettres) :
- Syntaxe :
chmod [ugoa][+-=][rwx] fichier - Exemples :
- Ajouter l'exécution au propriétaire :
chmod u+x script.sh - Retirer l'écriture au groupe :
chmod g-w data.csv - Donner lecture seule aux autres :
chmod o=r rapport.pdf - Appliquer à tous (récursif) :
chmod -R a+r dossier/
- Ajouter l'exécution au propriétaire :
- Syntaxe :
Notation Octale (chiffres) :
- Valeurs :
r=4,w=2,x=1. On additionne les valeurs. 7=rwx(4+2+1)6=rw-(4+2)5=r-x(4+1)4=r--(4)0=---- Syntaxe :
chmod [Propriétaire][Groupe][Autres] fichier - Exemples :
chmod 755 script.sh➔rwxr-xr-xchmod 644 fichier.txt➔rw-r--r--chmod 600 cle_privee➔rw-------
- Valeurs :
3. Modification de la Propriété
Changer le propriétaire (et/ou le groupe) :
chownchown alice fichier.txt(change le propriétaire)chown alice:devs fichier.txt(change propriétaire et groupe)chown -R alice:devs dossier/(récursif)
Changer le groupe uniquement :
chgrpchgrp devs fichier.txt
Note : Seul
rootpeut changer le propriétaire d'un fichier.
4. Permissions Spéciales
| Permission | Octal | Symbole | Rôle sur un Fichier | Rôle sur un Répertoire | Exemple |
|---|---|---|---|---|---|
| SetUID (SUID) | 4000 | u+s | Exécuter avec les droits du propriétaire. | (Sans effet) | /usr/bin/passwd |
| SetGID (SGID) | 2000 | g+s | Exécuter avec les droits du groupe. | Les fichiers créés héritent du groupe du répertoire. | Dossier de collaboration |
| Sticky Bit | 1000 | +t | (Sans effet) | Seul le propriétaire du fichier (ou root) peut le supprimer. | /tmp |
- Visualisation :
s(minuscule) : Permissionxprésente.S(majuscule) : Permissionxabsente (ne fonctionnera pas).t(minuscule) : Permissionxprésente.T(majuscule) : Permissionxabsente.
5. Permissions par Défaut : umask
Rôle :
umaskdéfinit les permissions qui sont retirées à la création d'un fichier ou d'un répertoire.Calcul :
Permissions effectives = Permissions de base - umask- Base pour les fichiers :
666(rw-rw-rw-) - Base pour les répertoires :
777(rwxrwxrwx)
- Base pour les fichiers :
Exemple avec
umask 022:- Nouveau Fichier :
666 - 022 = 644(rw-r--r--) - Nouveau Répertoire :
777 - 022 = 755(rwxr-xr-x)
- Nouveau Fichier :
Commandes :
umask: Affiche le umask actuel (ex:0022).umask 077: Définit un umask privé (résultat :600pour fichiers,700pour répertoires).
6. Bonnes Pratiques
- Principe du moindre privilège : Ne donnez que les droits strictement nécessaires. Évitez
777. - Clés SSH :
chmod 700 ~/.sshetchmod 600 ~/.ssh/id_rsa. - Scripts :
chmod 755 mon_script.sh(exécutable par tous, modifiable par vous seul). - Collaboration : Créez un groupe, utilisez
chgrp, et appliquezchmod 2775(SGID) sur le dossier partagé pour que tous les nouveaux fichiers appartiennent au bon groupe.