Permissions et utilisateurs
Le système de permissions Linux
Sous Linux, chaque fichier et chaque dossier a un propriétaire et des permissions. Ce système est l'un des piliers de la sécurité Linux. Il détermine qui peut lire, modifier ou exécuter chaque fichier.
Quand tu tapes ls -l, tu vois quelque chose comme ça :
# Résultat de ls -l
-rwxr-xr-- 1 thierry www-data 4096 Apr 10 14:22 script.sh
drwxr-xr-x 3 thierry thierry 4096 Apr 8 09:15 projets/
Décortiquons la colonne de permissions rwxr-xr-- :
- Le premier caractère :
-= fichier,d= dossier,l= lien symbolique - Les 3 suivants (
rwx) = permissions du propriétaire (user) - Les 3 suivants (
r-x) = permissions du groupe - Les 3 derniers (
r--) = permissions des autres (everyone else)
r = read (lire), w = write (écrire/modifier), x = execute (exécuter).
Un tiret - à la place d'une lettre signifie que cette permission est absente.
chmod — modifier les permissions
La commande chmod (change mode) modifie les permissions d'un fichier.
La notation numérique est la plus courante :
r= 4w= 2x= 1
Tu additionnes les valeurs pour chaque groupe (user, group, other) :
rwx = 4+2+1 = 7, r-x = 4+0+1 = 5, r-- = 4+0+0 = 4
# 755 : propriétaire peut tout faire, groupe et autres lisent/exécutent
chmod 755 script.sh
# 644 : propriétaire lit/écrit, groupe et autres lisent seulement
chmod 644 fichier.txt
# 600 : seul le propriétaire peut lire/écrire (clés SSH par exemple)
chmod 600 ~/.ssh/id_rsa
# 777 : tout le monde peut tout faire — DANGEREUX, à éviter
chmod 777 fichier.txt
# Récursif : appliquer à un dossier et tout son contenu
chmod -R 755 mon-site/
# Notation symbolique (alternative)
chmod +x script.sh # ajoute le droit d'exécution
chmod u-w fichier # retire le droit d'écriture au propriétaire
chmod 777 donne accès à tout le monde sans restriction.
Ne jamais utiliser sur un serveur public. Pour un fichier web, 644 est la norme.
Pour un script exécutable, 755. Pour une clé SSH privée, 600.
chown — changer le propriétaire
La commande chown (change owner) change le propriétaire ou le groupe d'un fichier.
Seul root peut changer le propriétaire d'un fichier.
# Changer le propriétaire
chown thierry fichier.txt
# Changer propriétaire ET groupe
chown thierry:www-data fichier.txt
# Changer le groupe seulement
chown :www-data fichier.txt
# Récursif sur un dossier
chown -R www-data:www-data /var/www/html/
# Voir le propriétaire d'un fichier
ls -l fichier.txt
Références rapides
755— dossiers web, scripts : propriétaire contrôle, autres lisent/exécutent644— fichiers web (HTML, CSS, PHP) : propriétaire écrit, autres lisent600— clés SSH, fichiers secrets : propriétaire seulement700— dossier privé : propriétaire seulement, les autres ne voient même pas
- Chaque fichier a des permissions pour 3 niveaux : user (propriétaire), group, other.
- r=4, w=2, x=1. On additionne : rwx=7, rw-=6, r-x=5, r--=4.
chmod 755 fichier— permission classique pour un script.chmod 644 fichier— permission classique pour un fichier de contenu.chown user:group fichier— changer le propriétaire et le groupe.