1. Comptes et groupes #
Qui peut se connecter et avec quelle identité.
Les fichiers de comptes #
| Fichier | Contenu |
|---|---|
/etc/passwd | nom:x:UID:GID:commentaire:répertoire:shell (lisible par tous) |
/etc/shadow | empreintes des mots de passe et expiration (root uniquement) |
/etc/group | groupes et membres secondaires |
/etc/sudoers, /etc/sudoers.d/ | règles sudo |
Chaque compte a un UID : 0 pour root, moins de 1000 pour les comptes système (services), 1000 et plus pour les humains. Les services tournent sous des comptes système sans shell (/usr/sbin/nologin) pour limiter les dégâts en cas de compromission.
Gérer les comptes #
sudo useradd -m -s /bin/bash -c "Alice Martin" alice # créer avec répertoire personnel
sudo passwd alice # définir le mot de passe
sudo usermod -aG devs,docker alice # ajouter à des groupes (-a indispensable !)
sudo chage -M 90 -W 7 alice # expiration du mot de passe à 90 jours
sudo chage -l alice # politique d'expiration
sudo usermod -L alice # verrouiller ; -U pour déverrouiller
sudo userdel -r bob # supprimer avec son répertoire
sudo useradd -r -s /usr/sbin/nologin -d /srv/app app # compte de service
id alice ; groups alice ; getent passwd alice
who ; w ; last -n 10 ; lastlog # qui est connecté, historiqueGroupes #
sudo groupadd devs
sudo gpasswd -d alice docker # retirer d'un groupe
newgrp devs # activer un nouveau groupe sans se reconnecterErreur Courante :usermod -G devs alicesans-aremplace tous les groupes secondaires d'alice : elle perd par exemple le groupesudo.
2. sudo #
Déléguer les droits root sans partager le mot de passe.
Principe #
sudo exécute une commande sous une autre identité (root par défaut) après authentification de l'utilisateur, et journalise chaque commande. On ne se connecte jamais directement en root : chacun utilise son compte nominatif, ce qui garde la traçabilité.
sudo -l # ce que j'ai le droit de faire
sudo -i # shell root (journalisé)
sudo -u postgres psql # exécuter en tant qu'un autre utilisateur
sudo visudo -f /etc/sudoers.d/devs # éditer avec vérification de syntaxe
journalctl _COMM=sudo --since today # audit des commandes sudoRègles #
# /etc/sudoers.d/devs
# utilisateur/groupe hôtes=(identité) commandes
%sudo ALL=(ALL:ALL) ALL
%devs ALL=(root) /usr/bin/systemctl restart app, /usr/bin/journalctl -u app*
deploy ALL=(root) NOPASSWD: /usr/local/bin/deploy.shBonne Pratique : Accordez des commandes précises plutôt queALL, et n'autorisez jamais via sudo un éditeur,lessou un script modifiable par l'utilisateur : ils permettent d'obtenir un shell root.
Erreur Courante : Éditez toujours avec visudo : une erreur de syntaxe dans sudoers peut bloquer tout accès root.3. Permissions #
Lire, écrire, exécuter.
Lire les droits #
| Droit | Sur un fichier | Sur un répertoire |
|---|---|---|
| r (4) | lire le contenu | lister les noms |
| w (2) | modifier | créer, renommer, supprimer des fichiers |
| x (1) | exécuter | traverser (cd, accéder aux fichiers) |
Modifier #
chmod 640 secret.conf # rw- r-- ---
chmod u+x deploy.sh # ajouter l'exécution au propriétaire
chmod -R g+rwX /srv/projet # X : exécution seulement sur les répertoires
sudo chown alice:devs fichier # changer propriétaire et groupe
sudo chown -R www-data: /srv/www # groupe principal de l'utilisateur
find /srv -type d -exec chmod 2775 {} + # appliquer aux seuls répertoiresumask #
Le umask retire des droits aux fichiers créés. Avec umask 022, un fichier est créé en 644 et un répertoire en 755 ; avec 027, en 640 et 750 (rien pour les autres).
umask ; umask 027 # valeur courante, puis plus restrictive pour la session4. Droits spéciaux, ACL et attributs #
Quand rwx ne suffit pas.
SUID, SGID et sticky bit #
| Bit | Notation | Effet |
|---|---|---|
| SUID (4000) | rws------ | le programme s'exécute avec les droits de son propriétaire (ex. passwd) |
| SGID (2000) sur un répertoire | rwxrws--- | les fichiers créés héritent du groupe du répertoire : idéal pour un dossier d'équipe |
| Sticky (1000) | rwxrwxrwt | seul le propriétaire peut supprimer ses fichiers (ex. /tmp) |
sudo chmod 2770 /srv/equipe # dossier partagé avec héritage du groupe
find / -xdev -perm -4000 -type f 2>/dev/null # inventaire des binaires SUID (audit)ACL #
Les ACL donnent des droits à des utilisateurs ou groupes supplémentaires, sans changer le propriétaire. Un + à la fin des droits dans ls -l signale une ACL.
setfacl -m u:bob:rx /srv/rapports # droit pour bob
setfacl -d -m g:audit:r /srv/rapports # ACL par défaut, héritée par les nouveaux fichiers
getfacl /srv/rapports
setfacl -b /srv/rapports # supprimer toutes les ACLAttributs #
sudo chattr +i /etc/resolv.conf # immuable, même pour root
sudo chattr +a /var/log/audit.log # ajout uniquement
lsattr /etc/resolv.confMon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Bonnes Pratiques Kubernetes
Meilleures pratiques pour sécuriser et optimiser les déploiements Kubernetes.
Comparaison Offres Kubernetes
Analyse complète des offres managées de Kubernetes avec points forts, fonctionnalités, tarificati...
Stratégies de placement Kubernetes
Présentation des stratégies de placement dans Kubernetes pour optimiser la gestion des charges de...
CNI Kubernetes : Flannel, Calico et Cilium comparés
Kubernetes CNI : comprendre les plugins réseau (Container Network Interface) et comparer Flannel,...
Gestionnaires de packages
Les différents gestionnaires de packages pour Kubernetes et leurs avantages.
Jobs vs Serverless
Comparaison entre les Jobs Kubernetes et le modèle Serverless pour le calcul de tâches en arrière...
PersistentVolume, PersistentVolumeClaim et StorageClass dans Kubernetes
PersistentVolume (PV), PersistentVolumeClaim (PVC) et StorageClass dans Kubernetes : différences,...
Resource Quota Kubernetes
Guide complet sur les quotas de ressources Kubernetes pour la gestion des namespaces.
ConfigMaps et Secrets
Guide complet sur les ConfigMaps et Secrets dans Kubernetes.