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

Permissions Linux : qui peut lire, écrire, exécuter

Après cette leçon: Je peux choisir qui a le droit de lire, de modifier ou d'exécuter un fichier.

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

Qui peut toucher à ce fichier ?

Sous Linux, chaque fichier a un propriétaire et des permissions : des droits qui disent qui peut le lire, le modifier ou l'exécuter. Sur un serveur partagé, ce sont elles qui empêchent un collègue de lire tes fichiers ou de casser un programme.

Aujourd'hui, tu lis ces droits, puis tu les changes.

À la fin de cette leçon

Remarque

Je peux choisir qui a le droit de lire, de modifier ou d'exécuter un fichier.

Mots clés

MotCe que ça veut direExemple
Utilisateurune personne ou un programme qui a un compte sur la machine
Groupeun ensemble d'utilisateurs qui partagent des droits
Permissionle droit de lire, d'écrire ou d'exécuterrw-
Propriétairel'utilisateur à qui appartient le fichier
Administrateurle compte qui a tous les droits, appelé root
Modeles permissions écrites en trois chiffres640

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

Avant de commencer

Remarque

Appuie sur Start the lab dans la barre en haut et attends que la machine soit prête. Ce lab contient des travaux d'administration que ton enseignant peut te donner. Aujourd'hui, tu ne touches qu'à deux fichiers à toi.

Trois personnes, trois droits

Pour chaque fichier, Linux se demande : qui es-tu ? Il y a trois cas. Le propriétaire possède le fichier. Le groupe est l'équipe liée au fichier. Les autres sont tout le monde.

Chaque cas a trois droits possibles : lire (r), écrire (w) et exécuter (x). Un tiret - veut dire : pas ce droit.

Lire la ligne -rw-r-----

MorceauPour quiSens
-le typeun fichier (un dossier commence par d)
rw-le propriétairelit et écrit
r--le groupelit seulement
---les autresaucun droit

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

Crée un fichier à toi

Commande
echo "plan du projet" > ~/plan-lecon2.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.

Fixe ses droits

Commande
chmod 640 ~/plan-lecon2.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.

Lis ses droits et son mode

Commande
stat -c '%A %a' ~/plan-lecon2.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.

Lire vaut 4, écrire 2, exécuter 1

Les droits se calculent. Lire vaut 4, écrire vaut 2 et exécuter vaut 1. On additionne : lire et écrire font 4 + 2 = 6.

Trois chiffres se suivent : propriétaire, groupe, autres. Donc 640 veut dire 6 (rw-), 4 (r--) et 0 (---). On peut aussi écrire des lettres : u est le propriétaire, g le groupe, o les autres.

Deux façons de dire la même chose

CommandeDroits aprèsSens
chmod 640 frw-r-----le propriétaire lit et écrit, le groupe lit
chmod 600 frw-------seul le propriétaire lit et écrit
chmod 755 frwxr-xr-xtous lisent et exécutent, le propriétaire écrit
chmod g+r fajoute rle groupe gagne la lecture
chmod u+x fajoute xle propriétaire gagne l'exécution

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

Ferme le fichier à tous

Commande
chmod 600 ~/plan-lecon2.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.

Rends-le lisible par le groupe

Commande
chmod g+r ~/plan-lecon2.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.

Lis le nouveau mode

Commande
stat -c '%A %a' ~/plan-lecon2.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 script exige le droit x

Un script est un petit programme écrit en texte. Il ne démarre que si le droit x est donné. Sans lui, le système répond « Permission denied » (permission refusée), même si le script est correct.

Un fichier tout juste créé n'a jamais le droit x. Pour un dossier, x veut dire : avoir le droit d'y entrer.

Écris un petit script

Commande
printf '#!/bin/sh\necho "bonjour"\n' > ~/salut-lecon2.sh

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.

Donne le droit x au propriétaire

Commande
chmod u+x ~/salut-lecon2.sh

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.

Lance le script

Commande
~/salut-lecon2.sh

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.

Lis ton fichier avec le compte nobody

Commande
sudo -u nobody cat ~/plan-lecon2.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.

Une erreur fréquente

Attention

Beaucoup pensent que chmod 777 règle tous les problèmes de droits. Il donne à tout le monde le droit de tout faire, y compris de modifier ton fichier. Cherche le droit qui manque et ne donne que celui-là.

À 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.