Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Droits sur les fichiers : qui lit, écrit, exécute

Après cette leçon: Je peux dire qui a le droit de lire, d’écrire ou de lancer un fichier, et changer ces droits.

Leçon de 55 min15 commandesLab d’administration Linux : utilisateurs, droits, cron et systemd dans le navigateur

Le fichier des prix d’achat

Une petite boutique garde ses prix d’achat dans un fichier, sur un serveur partagé. Un stagiaire l’ouvre et le modifie par erreur.

Personne n’a piraté quoi que ce soit. Le fichier avait simplement de mauvais droits. Cette leçon apprend à les régler.

À la fin de cette leçon

Remarque

Je peux dire qui a le droit de lire, d’écrire ou de lancer un fichier, et changer ces droits.

Mots-clés

MotCe que ça veut direExemple
Propriétairel’unique utilisateur à qui appartient un fichier
Groupeune liste nommée d’utilisateurs qui partagent des fichiers
Autrestous ceux qui ne sont ni le propriétaire ni dans le groupe
Rootle compte administrateur, qui peut tout faire
sudolance une seule commande en rootsudo whoami
Setgidun réglage de dossier : les nouveaux fichiers prennent son groupe2750

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Trois sortes de personnes, trois droits

Chaque fichier a un propriétaire et un groupe. Tous les autres sont les autres.

Pour chacun des trois, le fichier dit qui peut lire (r), écrire (w) et lancer (x).

Sur un dossier, r veut dire lister son contenu. w veut dire ajouter ou retirer des fichiers. x veut dire y entrer.

Qui suis-je ?

Commande
id

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lire le mode, le propriétaire et le groupe

Commande
stat -c "%a %A %U %G" /srv/projects

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Exemple travaillé : lire un mode

ModeLe propriétaire peutLe groupe peutLes autres peuvent
rwxr-x---lire, écrire, lancerlire, lancerrien
rw-rw-r--lire, écrirelire, écrirelire
rw-------lire, écrirerienrien
rwxr-xr-xlire, écrire, lancerlire, lancerlire, lancer

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

chmod change le mode

chmod change le mode. Vous pouvez lui donner trois chiffres, par exemple chmod 640 tarifs.txt.

Vous pouvez aussi dire ce qu’il faut ajouter ou retirer. g+w ajoute l’écriture pour le groupe. o-r retire la lecture aux autres.

Lancez ces commandes dans l’ordre. Chaque ls -l montre le nouveau mode.

Créer un fichier vide

Commande
touch tarifs.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Propriétaire lit et écrit, groupe lit

Commande
chmod 640 tarifs.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Regarder le mode

Commande
ls -l tarifs.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Laisser le groupe écrire aussi

Commande
chmod g+w tarifs.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Regarder encore

Commande
ls -l tarifs.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Erreur fréquente

Attention

Beaucoup de gens pensent que chmod 777 règle tout quand ils lisent « permission denied ». Il laisse tous les utilisateurs de la machine modifier le fichier. Cherchez qui a besoin du droit, et donnez-le seulement à ce propriétaire ou à ce groupe.

Utilisateurs, root et sudo

Chaque personne et chaque service a un compte utilisateur. Un utilisateur ordinaire n’ouvre le fichier d’un autre que si son mode le permet, et il ne peut pas modifier les fichiers du système.

Root peut tout faire. Personne ne devrait travailler en root toute la journée. sudo lance une seule commande en root, puis vous redevenez un utilisateur ordinaire.

Un utilisateur ordinaire est refusé

Commande
ls /root

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Le même utilisateur, avec sudo

Commande
sudo whoami

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Donner le fichier à root

Commande
sudo chown root tarifs.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Regarder le propriétaire

Commande
ls -l tarifs.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Le rendre à student

Commande
sudo chown student tarifs.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Un dossier d’équipe veut un groupe et setgid

Une équipe partage un dossier. Créez un groupe, par exemple ventes, et ajoutez chaque membre avec usermod -aG ventes nom.

Donnez le groupe au dossier avec chgrp, puis choisissez ce que le groupe peut faire.

Ajoutez le droit setgid, le 2 de 2750. Un fichier créé dans le dossier prend alors le groupe du dossier, quel que soit son auteur.

Créer un dossier d’essai

Commande
mkdir -p dossier_equipe

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Setgid : le groupe entre, pas les autres

Commande
chmod 2750 dossier_equipe

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Chercher le s

Commande
ls -ld dossier_equipe

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

À propos de ce labo et de sa source: Lab d’administration Linux : utilisateurs, droits, cron et systemd dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.