Cette fiche présente les commandes essentielles pour gérer les utilisateurs, les groupes et les permissions sous Linux. Le système de contrôle d'accès basé sur les utilisateurs et les groupes est un aspect fondamental de la sécurité sous Linux.
📑 Sommaire
👤 Gestion des utilisateurs
Commandes pour créer, modifier et supprimer des utilisateurs :
sudo adduser nom_utilisateur # Ajouter un utilisateur (interactif)
sudo useradd nom_utilisateur # Ajouter un utilisateur (non interactif)
sudo userdel nom_utilisateur # Supprimer un utilisateur
sudo userdel -r nom_utilisateur # Supprimer l'utilisateur et son répertoire personnel
sudo usermod -L nom_utilisateur # Verrouiller un compte
sudo usermod -U nom_utilisateur # Déverrouiller un compte
Modifier les propriétés d'un utilisateur :
sudo usermod -aG sudo utilisateur # Ajouter au groupe sudo (administrateur)
sudo usermod -d /nouveau/home user # Changer le répertoire personnel
sudo usermod -s /bin/bash utilisateur # Changer le shell par défaut
sudo usermod -c "Commentaire" user # Ajouter un commentaire/description
👥 Groupes et appartenance
Gérer les groupes et l'appartenance des utilisateurs :
sudo groupadd nom_du_groupe # Créer un groupe
sudo groupdel nom_du_groupe # Supprimer un groupe
sudo groupmod -n nouveau ancien # Renommer un groupe
sudo gpasswd -a utilisateur groupe # Ajouter un utilisateur à un groupe
sudo gpasswd -d utilisateur groupe # Retirer un utilisateur d'un groupe
sudo usermod -aG groupe utilisateur # Ajouter à un groupe (alternative)
sudo deluser utilisateur groupe # Retirer d'un groupe (alternative)
Définir le groupe principal d'un utilisateur :
sudo usermod -g groupe utilisateur # Change le groupe primaire
Afficher les groupes :
groups # Affiche vos groupes
groups utilisateur # Affiche les groupes d'un utilisateur
getent group # Liste tous les groupes du système
getent group nom_du_groupe # Affiche les membres d'un groupe
🔐 Droits et permissions
Gérer les permissions sur les fichiers et répertoires :
chmod +x script.sh # Ajouter droit d'exécution
chmod u+x script.sh # Ajouter exécution seulement au propriétaire
chmod g+w fichier # Ajouter écriture au groupe
chmod o-r fichier # Retirer lecture aux autres
chmod 755 fichier # rwxr-xr-x (propriétaire tout, autres lecture/exécution)
chmod 644 fichier # rw-r--r-- (propriétaire lecture/écriture, autres lecture)
chmod 700 dossier # rwx------ (accès total au propriétaire uniquement)
chmod -R 755 dossier/ # Appliquer récursivement à un dossier
Changer le propriétaire et le groupe d'un fichier :
sudo chown utilisateur fichier # Changer le propriétaire
sudo chown utilisateur:groupe fichier # Changer propriétaire et groupe
sudo chgrp groupe fichier # Changer uniquement le groupe
sudo chown -R user:groupe dossier/ # Changer récursivement pour un dossier
🔑 Gestion des mots de passe
Commandes pour gérer les mots de passe :
sudo passwd nom_utilisateur # Modifier le mot de passe d'un utilisateur
passwd # Modifier votre propre mot de passe
sudo passwd -l utilisateur # Verrouiller le compte (mot de passe)
sudo passwd -u utilisateur # Déverrouiller le compte
sudo passwd -e utilisateur # Forcer l'expiration du mot de passe
sudo passwd -x 90 utilisateur # Définir durée max. avant changement (90 jours)
sudo passwd -n 10 utilisateur # Durée min. entre changements (10 jours)
Vérifier les paramètres du mot de passe :
sudo chage -l utilisateur # Afficher les informations d'expiration
sudo chage -d 0 utilisateur # Forcer le changement au prochain login
ℹ️ Informations sur les utilisateurs
Commandes pour obtenir des informations sur les utilisateurs :
id # Affiche vos ID utilisateur et groupes
id nom_utilisateur # Affiche les IDs et groupes d'un utilisateur
finger utilisateur # Informations détaillées (si installé)
who # Utilisateurs actuellement connectés
w # Utilisateurs connectés avec plus de détails
last # Historique des connexions
lastlog # Dernière connexion de chaque utilisateur
Fichiers système importants :
cat /etc/passwd # Base de données des utilisateurs
cat /etc/group # Base de données des groupes
cat /etc/shadow # Mots de passe chiffrés (root uniquement)
⚡ Configuration de sudo
Configurer les privilèges sudo :
sudo visudo # Éditer le fichier de configuration sudo
# Exemples de configuration dans sudoers
username ALL=(ALL:ALL) ALL # Accès complet à toutes les commandes
username ALL=(ALL:ALL) NOPASSWD: ALL # Sans mot de passe (dangereux)
username ALL=(ALL:ALL) NOPASSWD: /bin/systemctl restart apache2 # Commande spécifique
Vérifier vos privilèges sudo :
sudo -l # Liste vos privilèges sudo
🎁 Bonus : Techniques avancées
ACL (Access Control Lists)
Les ACL permettent une gestion plus fine des permissions que chmod :
# Installation des outils ACL
sudo apt install acl
# Lister les ACL d'un fichier
getfacl fichier.txt
# Donner des permissions à un utilisateur spécifique
setfacl -m u:utilisateur:rw- fichier.txt
# Donner des permissions à un groupe spécifique
setfacl -m g:groupe:r-- fichier.txt
# Supprimer une ACL
setfacl -x u:utilisateur fichier.txt
Quotas disque
# Installation des outils de quota
sudo apt install quota
# Configuration dans /etc/fstab
# Ajouter usrquota,grpquota aux options de montage
# Activer les quotas
sudo quotacheck -ugm /home
sudo quotaon -v /home
# Définir le quota
sudo edquota -u utilisateur
Limitations des ressources
# Limiter les ressources d'un utilisateur dans /etc/security/limits.conf
username soft nproc 100 # Limite à 100 processus
username hard cpu 2 # Limite à 2 CPU