Linux Leçon 4
Les droits
Lire les permissions d'un fichier, les modifier avec chmod et changer le propriétaire avec chown.
À la fin de cette leçon, tu sauras
- Lire les droits rwx affichés par ls -l
- Modifier les droits avec chmod, en lettres et en chiffres
- Changer le propriétaire avec chown et utiliser sudo
Lire les droits
$ ls -l
-rw-r--r-- 1 lea www-data 2048 oct. 17 index.php
drwxr-x--- 2 lea www-data 4096 oct. 17 configLe premier caractère indique le type (- fichier, d dossier). Viennent ensuite trois groupes de trois lettres :
- les droits du propriétaire (ici
lea) ; - les droits du groupe (ici
www-data) ; - les droits de tous les autres.
Dans chaque groupe : r lire (read), w écrire (write), x exécuter, ou entrer dans un dossier. Un tiret veut dire « non ». Pour index.php : Léa peut lire et écrire, le groupe et les autres peuvent seulement lire.
chmod en chiffres
Chaque droit a une valeur : r = 4, w = 2, x = 1. On les additionne pour chaque groupe.
chmod 644 index.php # rw- r-- r-- : le cas classique d'un fichier
chmod 755 script.sh # rwx r-x r-x : un script exécutable, ou un dossier
chmod 600 secret.env # rw- --- --- : lisible par le propriétaire seulement
chmod +x script.sh # en lettres : ajoute le droit d'exécutionAttention : chmod 777 donne tous les droits à tout le monde. C'est la fausse solution classique quand « ça ne marche pas » : elle ouvre une faille. Cherche plutôt qui a besoin de quel droit.
Propriétaire et administrateur
sudo chown lea:www-data index.php # propriétaire lea, groupe www-data
sudo chown -R lea:lea site/ # tout un dossiersudo exécute une commande avec les droits d'administrateur (root), après avoir demandé ton mot de passe. Utilise-le seulement quand c'est nécessaire : une erreur avec sudo peut abîmer tout le système.
À toi de jouer
Dans le terminal (ton serveur) :
- donne au fichier
config.env, qui contient des mots de passe, des droits de lecture et d'écriture pour son propriétaire seulement (en chiffres) ; - rends le script
deploy.shexécutable par tout le monde, mais modifiable seulement par son propriétaire (en chiffres) ; - avec les droits administrateur, donne le dossier
siteet tout son contenu à l'utilisateurleaet au groupewww-data.
- config.env en 600
- deploy.sh en 755
- chown -R donne site à lea:www-data
- chown est lancé avec sudo
- Pas de chmod 777
Bravo, toutes les consignes sont réussies !
Bloqué ? Voir une solution
chmod 600 config.env
chmod 755 deploy.sh
sudo chown -R lea:www-data site