Skip to Content
DocumentationExploitationAdministration systèmeUtilisateurs et autorisations

Utilisateurs et autorisations

Ubuntu est un système d’exploitation multi-utilisateurs, et une gestion appropriée des utilisateurs et une configuration des autorisations sont les pierres angulaires de la sécurité du système. Cet article explique comment créer et gérer des utilisateurs, configurer des groupes et comprendre le système d’autorisation de fichiers dans Ubuntu 26.04.

Gestion des utilisateurs

Création d’utilisateurs

Utilisez useradd pour créer un nouvel utilisateur :

# Create a user with a home directory sudo useradd -m -s /bin/bash username # Set the password sudo passwd username

La commande adduser est préférable, car il s’agit d’un script wrapper interactif qui vous guide tout au long de la configuration :

sudo adduser username

Modification des attributs utilisateur

Utilisez usermod pour modifier les attributs d’un utilisateur existant :

# Change the default shell sudo usermod -s /bin/zsh username # Change home directory (and move files) sudo usermod -d /home/newdir -m username # Lock a user account sudo usermod -L username # Unlock a user account sudo usermod -U username # Rename a user sudo usermod -l newname oldname

Suppression d’utilisateurs

# Delete a user but keep the home directory sudo userdel username # Delete a user and their home directory sudo userdel -r username

Affichage des informations utilisateur

# Check the current user whoami # View user ID and group information id username # List all users cat /etc/passwd # View currently logged-in users who w

Gestion de groupe

Création et gestion de groupes

# Create a new group sudo groupadd developers # Add a user to a group (preserving existing groups) sudo usermod -aG developers username # Add a user to multiple groups sudo usermod -aG docker,sudo,developers username # View the groups a user belongs to groups username # View all members of a group getent group developers # Delete a group sudo groupdel developers

Groupe principal vs groupes supplémentaires

Chaque utilisateur dispose d’un groupe principal et de zéro ou plusieurs groupes supplémentaires :

# Change a user's primary group sudo usermod -g newgroup username # Modify supplementary groups (-a means append; without -a, all supplementary groups are replaced) sudo usermod -aG extragroup username

Configuration sudo

Note

Ubuntu 26.04 est livré avec sudo-rs, une réécriture de Rust, en remplacement par défaut du C sudo traditionnel. Il est compatible avec la grande majorité de la syntaxe courante de sudoers (règles d’utilisateur/groupe, NOPASSWD, ALL, /etc/sudoers.d/, etc.), donc l’utilisation quotidienne est inchangée. Cependant, certaines directives obscures et plugins tiers ne sont pas encore implémentés. Si un script dépendant de sudo échoue ou se comporte de manière inattendue, exécutez d’abord sudo --version pour confirmer l’implémentation actuelle et, si nécessaire, installez temporairement la version traditionnelle avec sudo apt install sudo pour résoudre le problème, puis revenez à sudo-rs une fois le problème résolu.

Utilisation de base

# Execute a command with root privileges sudo apt update # Switch to the root user sudo -i # Execute a command as another user sudo -u www-data command

Ajout d’un utilisateur au groupe sudo

# In Ubuntu, members of the sudo group have administrator privileges sudo usermod -aG sudo username

Modification du fichier sudoers

Utilisez toujours visudo pour modifier la configuration sudoers, car il effectue une vérification de la syntaxe avant d’enregistrer :

sudo visudo

Exemples de configuration courants :

# Allow a user to execute all commands without a password username ALL=(ALL) NOPASSWD: ALL # Allow a user to execute only specific commands username ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx # Allow group members to execute apt without a password %developers ALL=(ALL) NOPASSWD: /usr/bin/apt

Vous pouvez également créer des fichiers de configuration autonomes dans /etc/sudoers.d/ :

sudo visudo -f /etc/sudoers.d/developers

Bases des autorisations de fichiers

Comprendre la notation des autorisations

Les autorisations de fichiers Linux se composent de trois ensembles : propriétaire, groupe et autres. Chaque ensemble comprend des autorisations de lecture (r=4), d’écriture (w=2) et d’exécution (x=1).

# View file permissions ls -la # Example output: # -rwxr-xr-- 1 user group 4096 Jan 1 12:00 script.sh # │├─┤├─┤├─┤ # │ │ │ └── Others: r-- (read only) # │ │ └── Group: r-x (read and execute) # │ └── Owner: rwx (read, write, execute) # └── File type: - regular file, d directory, l symlink

chmod - Modification des autorisations

# Numeric mode chmod 755 script.sh # rwxr-xr-x chmod 644 config.txt # rw-r--r-- chmod 600 secret.key # rw------- # Symbolic mode chmod u+x script.sh # Add execute permission for the owner chmod g+w file.txt # Add write permission for the group chmod o-r file.txt # Remove read permission for others chmod a+r file.txt # Add read permission for everyone # Recursively change directory permissions chmod -R 755 /var/www/html

chown - Changer de propriétaire

# Change the file owner sudo chown newuser file.txt # Change both owner and group sudo chown newuser:newgroup file.txt # Change only the group sudo chgrp newgroup file.txt # Recursively change directory ownership sudo chown -R www-data:www-data /var/www

Autorisations spéciales

# SUID - Execute as the file owner chmod u+s executable chmod 4755 executable # SGID - Execute as the file group / new files in directory inherit the group chmod g+s directory chmod 2755 directory # Sticky Bit - Only the file owner can delete files (commonly used on /tmp) chmod +t directory chmod 1777 directory

umask - Masque d’autorisation par défaut

# View current umask umask # Set umask (new file default = 0666 - umask, new directory = 0777 - umask) umask 022 # New files 644, new directories 755 umask 077 # New files 600, new directories 700

Pour modifier définitivement l’umask, modifiez ~/.bashrc ou /etc/login.defs.

Autorisations étendues ACL

Lorsque les autorisations standards ne sont pas assez flexibles, vous pouvez utiliser des ACL (Access Control Lists) :

# Install ACL tools sudo apt install acl # Grant permissions to a specific user setfacl -m u:username:rwx /path/to/file # Grant permissions to a specific group setfacl -m g:groupname:rx /path/to/dir # View ACL settings getfacl /path/to/file # Recursively set ACL setfacl -R -m u:username:rwx /path/to/dir # Set default ACL (newly created files inherit automatically) setfacl -d -m u:username:rwx /path/to/dir # Remove ACL setfacl -x u:username /path/to/file

Meilleures pratiques

  1. Principe du moindre privilège : accordez aux utilisateurs uniquement les autorisations minimales nécessaires pour effectuer leur travail.
  2. Évitez d’utiliser root directement : utilisez sudo pour exécuter des commandes administratives plutôt que de rester connecté en tant que root.
  3. Utilisez les groupes à bon escient : la gestion des autorisations via des groupes est plus efficace que la configuration de chaque utilisateur individuellement.
  4. Auditez régulièrement : examinez périodiquement /etc/passwd et /etc/group pour nettoyer les utilisateurs et les groupes qui ne sont plus nécessaires.
  5. Protégez les fichiers sensibles : assurez-vous que les fichiers tels que les clés /etc/shadow et SSH disposent des autorisations correctes (600 ou plus strictes).