Gestion des utilisateurs, groupes et partage de ressources
Comptes utilisateurs sous Linux
Fichiers de référence
| Fichier | Contenu | Accès |
|---|---|---|
/etc/passwd | Login, UID, GID, home, shell | Lisible par tous |
/etc/shadow | Mots de passe hashés, expiration | Root uniquement |
/etc/group | Groupes et membres | Lisible par tous |
Format passwd : alice:x:1001:1001:Alice Dupont:/home/alice:/bin/bash
UID et GID
- UID 0 = root (superutilisateur)
- UIDs 1-999 = comptes système (services)
- UIDs ≥ 1000 = utilisateurs humains
- Chaque utilisateur a un groupe primaire et des groupes secondaires
Commandes de gestion
# Créer un utilisateur avec home et shell
useradd -m -s /bin/bash alice
# Ajouter Ă un groupe (ATTENTION : -a = append, sinon remplacement !)
usermod -aG docker alice
# Supprimer utilisateur + home
userdel -r alice
# Changer le mot de passe
passwd alice
# Créer un groupe
groupadd devteam
# Voir UID, GID et groupes
id aliceSudo
sudo permet d'exécuter une commande avec les droits root. Configuration dans /etc/sudoers (toujours via visudo) :
# Autoriser alice à redémarrer nginx sans mot de passe
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginxComptes sous Windows
Un compte local n'est valide que sur la machine. Un compte de domaine (Active Directory) permet la connexion sur n'importe quelle machine du domaine.
# Créer un utilisateur
net user alice MotDePasse /add
# Ajouter au groupe Administrateurs
net localgroup Administrateurs alice /add
# PowerShell
New-LocalUser -Name "alice"
Add-LocalGroupMember -Group "Administrateurs" -Member "alice"Principe du moindre privilège
Chaque utilisateur ne doit avoir que les droits strictement nécessaires à sa fonction. En pratique :
- On ne donne jamais les droits directement Ă un utilisateur
- On l'ajoute Ă un groupe qui a ces droits
- Si l'utilisateur change de fonction, on modifie ses groupes, pas les permissions
- Cela réduit la surface d'attaque et simplifie l'audit
Stratégie AGDLP (Active Directory)
Account → Global group → Domain Local group → Permission
On met les comptes dans des groupes globaux (par rĂ´le), les globaux dans des groupes locaux de domaine (par ressource), et on assigne les permissions aux groupes locaux.
Partage de ressources réseau
NFS (Network File System)
Protocole de partage standard Linux/Unix :
# Serveur : exporter un répertoire (/etc/exports)
/data/share 192.168.1.0/24(rw,sync,no_subtree_check)
# Client : monter le partage
mount -t nfs serveur:/data/share /mnt/partage
# Montage permanent (/etc/fstab)
serveur:/data/share /mnt/partage nfs defaults 0 0SMB/CIFS (Samba)
Protocole Windows, implémenté sous Linux par Samba. Partage de fichiers et imprimantes entre Linux et Windows :
# Configuration dans /etc/samba/smb.conf
[partage]
path = /data/share
valid users = @devteam
read only = no
# Créer un utilisateur Samba
smbpasswd -a alice
# Accès client Linux
mount -t cifs //serveur/partage /mnt/share -o user=aliceAccès Windows : \\serveur\partage
Quotas de disque
Les quotas limitent l'espace disque par utilisateur/groupe :
- Soft limit : avertissement, dépassement temporaire autorisé
- Hard limit : limite absolue, impossible à dépasser
# Configurer un quota
edquota -u alice
# Consulter les quotas
repquota /homeAudit et traçabilité
# Historique des connexions
last
# Dernière connexion de chaque utilisateur
lastlog
# Logs d'authentification
tail -f /var/log/auth.log # Debian
tail -f /var/log/secure # Red HatSous Windows, les stratégies d'audit dans les GPO activent le suivi des connexions et modifications de comptes.
Points clés pour le concours
- UID 0 = root, ≥ 1000 = humains, 1-999 = système
- Toujours
usermod -aG(append) pour ajouter à un groupe - Moindre privilège : droits via les groupes, jamais directement
- NFS pour Linux-Linux, SMB/Samba pour l'interopérabilité Windows
- L'audit des accès est requis pour la conformité RGPD