4.3 - Propriétaires, groupes, chown et chgrp
chown change le propriétaire et éventuellement le groupe. chgrp change seulement le groupe.
Examiner l'appartenance
ls -l fichier.txt
stat -c '%U:%G %n' fichier.txt
id alex
getent group informatique
Changer propriétaire ou groupe
sudo chown alex fichier.txt
sudo chown alex:informatique fichier.txt
sudo chown :informatique fichier.txt
sudo chgrp informatique fichier.txt
Appliquer récursivement :
sudo chown -R alex:informatique /srv/projet
Une opération récursive doit cibler un chemin explicite et vérifié :
sudo ls -ld /srv/projet
sudo find /srv/projet -maxdepth 2 -printf '%u:%g %p\n'
Dossier partagé par un groupe
Créer un dossier collaboratif :
sudo mkdir -p /srv/partage
sudo chown root:informatique /srv/partage
sudo chmod 2770 /srv/partage
Le chiffre spécial 2 active le bit setgid sur le dossier. Les nouveaux éléments héritent alors du groupe informatique au lieu d'utiliser systématiquement le groupe principal du créateur.
Vérifier :
ls -ld /srv/partage
La permission de groupe apparaît avec s, par exemple drwxrws---.
Bits spéciaux
| Bit | Valeur | Usage courant |
|---|---|---|
| setuid | 4 | exécuter un programme avec l'identité de son propriétaire |
| setgid | 2 | héritage du groupe sur un dossier |
| sticky bit | 1 | chacun ne supprime que ses propres fichiers dans un dossier partagé |
Exemple du sticky bit :
sudo chmod 1777 /srv/depot-temporaire
Le répertoire /tmp utilise habituellement ce principe.
Retrouver les identifiants numériques
id -u alex
id -g alex
getent passwd alex
getent group informatique
Sur un partage NFS ou dans un conteneur, les numéros UID/GID sont souvent plus importants que les noms affichés. Une différence d'identifiants peut provoquer un accès refusé malgré des noms semblables.