Principes de base des droits d'accès : chmod
, chown
, umask
1. Notion de droits d'accès
Quand tu bosses avec des fichiers ou des répertoires sous Linux, parfois tu dois gérer qui peut y accéder. Imagine que t'as laissé tes chaussettes traîner et maintenant tout le monde à la maison peut les utiliser ! Les droits d'accès sous Linux permettent d'éviter ce genre d'utilisation "non autorisée des chaussettes" (ou autre chose plus important, comme tes scripts). Allez, on s'y met.
Chaque fichier (et répertoire) sous Linux a trois ensembles de droits d'accès qui déterminent qui peut les lire, écrire ou exécuter :
- Lecture (r): Permet de voir le contenu d'un fichier ou la liste des fichiers dans un répertoire.
- Écriture (w): Autorise à modifier le contenu du fichier ou à ajouter/supprimer des fichiers dans un répertoire.
- Exécution (x): Donne la possibilité d'exécuter le fichier comme un programme (ou d'entrer dans un répertoire).
Le modèle à trois niveaux
Chaque droit s'applique à trois groupes d'utilisateurs :
- Propriétaire (owner): Celui qui a créé le fichier.
- Groupe (group): Les utilisateurs regroupés dans un groupe auquel le fichier est attribué.
- Autres (others): Tous les autres utilisateurs du système.
Exemple de droits d'accès pour un fichier :
-rwxr-xr--
Décryptons :
- Le premier caractère
-
indique que c'est un fichier (pour un répertoire ce serad
). - Les trois premiers caractères
rwx
— droits pour le propriétaire (lecture, écriture, exécution). - Les trois caractères suivants
r-x
— droits pour le groupe (lecture, exécution). - Les trois derniers caractères
r--
— droits pour les autres (lecture seulement).
2. La commande chmod
: gérer les permissions
Format symbolique
La commande chmod
modifie les permissions des fichiers et répertoires. Le format symbolique s'écrit ainsi :
chmod [qui][action][droits] nom_fichier
- Qui :
u
(propriétaire),g
(groupe),o
(autres),a
(tous). - Action :
+
(ajouter un droit),-
(retirer un droit),=
(définir exactement les droits). - Droits :
r
(lecture),w
(écriture),x
(exécution).
Exemples :
# Donnons les droits d'exécution à tous
chmod a+x script.sh
# Ajoutons les droits d'écriture uniquement pour le groupe
chmod g+w file.txt
# Retirons le droit de lecture pour les autres
chmod o-r document.txt
Format octal
Le format octal (ou numérique) est plus compact mais demande une compréhension de la "magie des chiffres". Dans ce format, chaque combinaison de droits est représentée par un chiffre :
r = 4
w = 2
x = 1
Les droits s'additionnent :
rwx = 7
(4 + 2 + 1)rw- = 6
(4 + 2)r-- = 4
Format d'écriture :
chmod [chiffre][chiffre][chiffre] nom_fichier
Exemple :
# Donnons les droits rwx au propriétaire, r-x au groupe, r-- aux autres
chmod 754 file.sh
3. Changer le propriétaire d’un fichier : commande chown
Si tu as besoin de transférer un fichier à un autre utilisateur (ou groupe), la commande chown
vient à ta rescousse.
Format :
chown [utilisateur]:[groupe] nom_fichier
Exemples :
# Transférer la propriété à l'utilisateur user1
chown user1 myfile.txt
# Transférer la propriété et le groupe
chown user1:group1 myfile.txt
# Changer uniquement le groupe
chown :group2 myfile.txt
4. Masque par défaut : umask
Quand tu crées un fichier, ses permissions sont définies par le système. Par exemple, les permissions peuvent être rw-r--r--
. Mais d'où viennent-elles ? Réponse : de la commande umask
.
C'est quoi umask
?
umask
détermine quelles permissions ne seront pas définies pour les nouveaux fichiers.
Par exemple :
- Ensemble des permissions de base pour un fichier :
666
(pas d'exécution). - Masque :
022
. - Permissions finales :
644
(666 - 022
).
Commandes :
- Voir le masque actuel :
umask
- Définir un nouveau masque :
umask 0022
Exemple :
# Configuration du masque pour que les nouveaux fichiers aient rw-rw-r--
umask 0002
5. Droits d'administrateur et sudo
Qu'est-ce que sudo
?
sudo
(abréviation de "superuser do") — est une commande dans Linux et les systèmes de type Unix qui permet à un utilisateur d'exécuter des commandes au nom d’un superutilisateur (root) ou d’un autre utilisateur avec des privilèges élevés.
Le système sudo
fournit un accès temporaire aux capacités administratives sans avoir besoin de travailler constamment sous le compte root, ce qui réduit les risques de modifications accidentelles ou malveillantes du système.
Pour simplifier, sudo est écrit avant la commande qui doit être exécutée avec les droits d'administrateur.
Comment fonctionne sudo
?
Lancement de la commande :
Lorsque tu saisis une commande avec sudo
, le système vérifie si ton utilisateur a le droit d'exécuter des commandes avec des privilèges élevés.
Par exemple :
sudo apt update
Authentification :
Lors de la première utilisation de sudo
dans la session actuelle, le système demandera d’entrer le mot de passe de l’utilisateur courant (pas root).
Après une saisie réussie du mot de passe, le système conserve l’authentification pour une courte durée (généralement 5-15 minutes), afin de ne pas demander le mot de passe pour chaque commande.
Exécution de la commande :
Si l'utilisateur dispose des droits spécifiés dans la configuration de sudo
, la commande sera exécutée avec les droits du superutilisateur.
Principales fonctions et commandes de sudo
Lancer une commande avec des privilèges :
sudo <commande>
Par exemple :
sudo apt install nginx
Exécuter une commande au nom d'un autre utilisateur : Utilise l'option -u
:
sudo -u <nom_utilisateur> <commande>
Par exemple :
sudo -u user1 ls /home/user1
Obtenir un terminal administratif : Lance une session shell avec les droits root :
sudo -i
ou :
sudo su
Voir la configuration de sudo
:
sudo -l
Affiche les commandes que l'utilisateur actuel a le droit d'exécuter.
Modifier la configuration de sudo
:
sudo visudo
Cette commande ouvre le fichier de configuration /etc/sudoers
pour une modification sécurisée.
6. Exemples
Essayons d'appliquer nos connaissances en pratique.
Exercice 1 : Gestion des droits avec chmod
Créez un fichier :
touch myfile.txt
Attribuez au propriétaire les droits de lecture, écriture et exécution :
chmod u+rwx myfile.txt
Ajoutez uniquement les droits de lecture pour les autres :
chmod o+r myfile.txt
Vérifiez les droits :
ls -l myfile.txt
Exercice 2 : Changement de propriétaire avec chown
Créez un fichier :
touch ownedfile.txt
Changez le propriétaire en
user1
(nécessite des droits administrateur) :sudo chown user1 ownedfile.txt
Vérifiez les changements :
ls -l ownedfile.txt
Exercice 3 : Expérimenter avec umask
Vérifiez le masque actuel :
umask
Définissez le masque à
027
:umask 027
Créez un nouveau fichier :
touch newfile.txt
Vérifiez les droits du fichier créé :
ls -l newfile.txt
7. Erreurs courantes et nuances
- Vous avez oublié
sudo
lors du changement de propriétaire : Seul l'administrateur peut changer le propriétaire d'un fichier. Si vous obtenez l'erreur "Operation not permitted", essayez d'ajoutersudo
. - Ordre incorrect dans la commande
chmod
: Vous avez changé les droits du mauvais objet. Assurez-vous d'avoir sélectionné le fichier ou le répertoire correct. umask
n'affecte que les nouveaux fichiers : Si vous essayez de modifier les droits des fichiers existants avecumask
, cela ne fonctionnera pas. Utilisezchmod
.
Le saviez-vous ? Les droits d'accès dans Linux sont tellement flexibles que vous pouvez créer un fichier que seule une personne dans tout l'univers peut "voir" ! Comme on dit, avec de grands droits viennent de grandes responsabilités ! Maintenant, armé de chmod
, chown
et umask
, vous êtes prêt à rendre vos systèmes Linux non seulement pratiques, mais aussi sécurisés.
GO TO FULL VERSION