Les permissions Linux expliquees : chmod, chown, ACL

Credit : Illustration backtotheweb.fr

Les permissions Linux expliquees : chmod, chown, ACL

Dylan D. — Agent Support Technique Serveur Linux 607 mots 4 min

Les bases : utilisateur, groupe, autres

Petit guide rapide parce que la doc officielle est... disons perfectible.

Chaque fichier Linux a trois niveaux de permission :

Et trois types de droits :

Droit Lettre Octal Fichier Repertoire
Lecture r 4 Lire le contenu Lister les fichiers
Ecriture w 2 Modifier le contenu Creer/supprimer des fichiers
Execution x 1 Executer le fichier Traverser le repertoire

Affichons les permissions :

ls -la /var/www/
# drwxr-xr-x 3 www-data www-data 4096 mars 22 10:00 html
# -rw-r--r-- 1 www-data www-data  612 mars 22 10:00 index.html

Le premier caractere indique le type (d = repertoire, - = fichier, l = lien).

chmod : modifier les permissions

Notation octale

Chaque groupe de trois droits se traduit en un chiffre de 0 a 7 :

# rwxr-xr-x = 755
chmod 755 /var/www/html

# rw-r--r-- = 644
chmod 644 /var/www/html/index.html

# rwx------ = 700
chmod 700 ~/.ssh

# rw------- = 600
chmod 600 ~/.ssh/id_rsa

Notation symbolique

# Ajouter l'execution au proprietaire
chmod u+x script.sh

# Retirer l'ecriture au groupe et aux autres
chmod go-w fichier.txt

# Donner lecture a tous
chmod a+r document.pdf

# Appliquer recursivement
chmod -R 755 /var/www/html/

Les permissions Linux expliquees : chmod, chown, ACL

chown : changer le proprietaire

# Changer le proprietaire
sudo chown www-data fichier.html

# Changer proprietaire et groupe
sudo chown www-data:www-data fichier.html

# Recursivement sur un repertoire
sudo chown -R www-data:www-data /var/www/html/

# Changer seulement le groupe
sudo chgrp developers /opt/projet/

Les permissions Linux expliquees : chmod, chown, ACL

Les bits speciaux

Setuid (4xxx)

Un fichier avec setuid s'execute avec les droits de son proprietaire :

chmod u+s /usr/local/bin/programme
chmod 4755 /usr/local/bin/programme
# -rwsr-xr-x

Exemple concret : /usr/bin/passwd a le setuid pour modifier /etc/shadow en tant que root.

Setgid (2xxx)

Sur un repertoire, les nouveaux fichiers heritent du groupe du repertoire :

sudo mkdir /opt/projet-equipe
sudo chgrp developers /opt/projet-equipe
sudo chmod 2775 /opt/projet-equipe
# drwxrwsr-x

Tous les fichiers crees dans ce repertoire appartiendront au groupe developers.

Sticky bit (1xxx)

Sur un repertoire, seul le proprietaire d'un fichier peut le supprimer :

sudo chmod 1777 /tmp
# drwxrwxrwt

C'est pourquoi /tmp a le sticky bit : tout le monde peut y ecrire, mais personne ne peut supprimer les fichiers des autres.

ACL : permissions avancees

Les permissions standard ne permettent qu'un proprietaire et un groupe. Les ACL (Access Control Lists) offrent plus de flexibilite :

# Installer les outils ACL
sudo apt install acl

# Donner acces en lecture a un utilisateur specifique
setfacl -m u:jean:rx /opt/projet/

# Donner acces en ecriture a un groupe
setfacl -m g:designers:rw /opt/projet/assets/

# Definir des permissions par defaut pour les nouveaux fichiers
setfacl -d -m g:developers:rwx /opt/projet/

# Afficher les ACL
getfacl /opt/projet/

Resultat de getfacl :

# file: opt/projet/
# owner: root
# group: developers
user::rwx
user:jean:r-x
group::rwx
group:designers:rw-
mask::rwx
other::r-x
default:group:developers:rwx

Pour un serveur web IONOS typique, les permissions recommandees sont :

# Fichiers : 644, Repertoires : 755, Proprietaire : www-data
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
sudo chown -R www-data:www-data /var/www/html

Des permissions bien configurees sont la premiere barriere de securite de votre serveur.

# Articles similaires

// newsletter

Cet article vous a aide ? Recevez les prochains par email.