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 usernameLa 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 usernameModification 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 oldnameSuppression d’utilisateurs
# Delete a user but keep the home directory
sudo userdel username
# Delete a user and their home directory
sudo userdel -r usernameAffichage 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
wGestion 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 developersGroupe 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 usernameConfiguration sudo
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 commandAjout d’un utilisateur au groupe sudo
# In Ubuntu, members of the sudo group have administrator privileges
sudo usermod -aG sudo usernameModification du fichier sudoers
Utilisez toujours visudo pour modifier la configuration sudoers, car il effectue une vérification de la syntaxe avant d’enregistrer :
sudo visudoExemples 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/aptVous pouvez également créer des fichiers de configuration autonomes dans /etc/sudoers.d/ :
sudo visudo -f /etc/sudoers.d/developersBases 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 symlinkchmod - 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/htmlchown - 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/wwwAutorisations 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 directoryumask - 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 700Pour 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/fileMeilleures pratiques
- Principe du moindre privilège : accordez aux utilisateurs uniquement les autorisations minimales nécessaires pour effectuer leur travail.
- Évitez d’utiliser root directement : utilisez
sudopour exécuter des commandes administratives plutôt que de rester connecté en tant que root. - Utilisez les groupes à bon escient : la gestion des autorisations via des groupes est plus efficace que la configuration de chaque utilisateur individuellement.
- Auditez régulièrement : examinez périodiquement
/etc/passwdet/etc/grouppour nettoyer les utilisateurs et les groupes qui ne sont plus nécessaires. - Protégez les fichiers sensibles : assurez-vous que les fichiers tels que les clés
/etc/shadowet SSH disposent des autorisations correctes (600 ou plus strictes).