linuxpermissionschmod
MDstable
Permissions fichiers Linux
chmod, chown, ACL, SUID/SGID/Sticky bit — maîtriser les droits d'accès
snippetbeginner 2025-05-10 3 min read
linuxpermissionschmodchownaclsuidsgid
Lecture des permissions
bash
ls -la# -rwxr-xr-- 1 alice devs 4096 May 10 12:00 script.sh# |||||||||# |||||||||└─ autres : r-- (4)# |||||└────── groupe : r-x (5)# ||└────────── user : rwx (7)# |└──────────── type : - fichier, d dossier, l symlink
chmod — Changer les permissions
bash
Variables
{{FILE}}
{{DIR}}
# Notation numérique (octal)chmod 755 {{FILE}} # rwxr-xr-xchmod 644 {{FILE}} # rw-r--r--chmod 600 {{FILE}} # rw------- (ex: clé privée SSH)chmod 700 {{DIR}} # rwx------ (répertoire privé)# Notation symboliquechmod ux {{FILE}} # ajouter exec à ownerchmod g-w {{FILE}} # retirer write au groupechmod or {{FILE}} # others = read seulementchmod ar {{FILE}} # all (u+g+o) → readchmod ugrwxo {{FILE}} # owner+group=full, others=rien# Récursifchmod -R 755 {{DIR}}chmod -R uX {{DIR}} # +X = exec seulement si déjà exec ou dossier# Référence : copier les droits d'un autre fichierchmod --reference=fichier_source {{FILE}}
chown — Changer le propriétaire
bash
Variables
{{USER}}
{{FILE}}
{{GROUP}}
{{DIR}}
# Changer ownerchown {{USER}} {{FILE}}# Changer owner et groupechown {{USER}}{{GROUP}} {{FILE}}# Changer seulement le groupechown {{GROUP}} {{FILE}}# ouchgrp {{GROUP}} {{FILE}}# Récursifchown -R {{USER}}{{GROUP}} {{DIR}}# Ne pas suivre les symlinkschown -h {{USER}} symlink
Bits spéciaux : SUID / SGID / Sticky
bash
Variables
{{FILE}}
{{DIR}}
# SUID (4xxx) — s'exécute avec les droits du ownerchmod us {{FILE}}chmod 4755 {{FILE}} # rwsr-xr-x# Ex: /usr/bin/passwd (SUID root pour changer le mot de passe)# SGID (2xxx) — s'exécute avec les droits du groupechmod gs {{DIR}}chmod 2755 {{DIR}} # drwxr-sr-x# Sur un répertoire : les nouveaux fichiers héritent du groupe# Sticky bit (1xxx) — seul le owner peut supprimer dans ce dossierchmod t {{DIR}}chmod 1777 {{DIR}} # drwxrwxrwt# Ex: /tmp — tout le monde peut écrire mais pas supprimer les fichiers des autres# Chercher les fichiers SUID/SGID (audit sécurité)find -perm -4000 -type f 2>/dev/null # SUIDfind -perm -2000 -type f 2>/dev/null # SGIDfind -perm -1000 -type d 2>/dev/null # Sticky
ACL — Droits fins par utilisateur
bash
Variables
{{FILE}}
{{USER}}
{{GROUP}}
{{DIR}}
# Voir les ACLgetfacl {{FILE}}# Ajouter des droits à un utilisateur spécifiquesetfacl -m u{{USER}}rwx {{FILE}}# Ajouter des droits à un groupe spécifiquesetfacl -m g{{GROUP}}r {{FILE}}# ACL par défaut sur un répertoire (héritées par les nouveaux fichiers)setfacl -d -m u{{USER}}rwx {{DIR}}# Supprimer une ACL spécifiquesetfacl -x u{{USER}} {{FILE}}# Supprimer toutes les ACLsetfacl -b {{FILE}}# Copier les ACL d'un fichier vers un autregetfacl fichier_source | setfacl --set-file=- fichier_dest
umask — Permissions par défaut
bash
# Voir le umask actuelumask# Calculer : 0666 - umask = droits fichier, 0777 - umask = droits dossier# umask 022 → fichiers: 644 (rw-r--r--), dossiers: 755 (rwxr-xr-x)# umask 027 → fichiers: 640 (rw-r-----), dossiers: 750 (rwxr-x---)# Changer temporairementumask 027# Changer de façon permanente (dans ~/.bashrc ou /etc/profile)echo "umask 027" >> /etc/profile
Attributs étendus (chattr / lsattr)
bash
Variables
{{FILE}}
{{DIR}}
# Rendre un fichier immuable (même root ne peut pas le modifier)chattr i {{FILE}}# Retirer l'immuabilitéchattr -i {{FILE}}# Append-only (log files)chattr a {{FILE}}# Voir les attributslsattr {{FILE}}lsattr -R {{DIR}}
💡 Tip —
Pour les audits sécurité : find / -perm -4000 2>/dev/null liste tous les binaires SUID — comparer avec une baseline connue. Un SUID sur un éditeur ou interpréteur (vim, python, bash) permet une escalade de privilèges triviale.
OPS·BRAIN v1.09 notes · SysAdminlocal