La gestion des utilisateurs, des groupes et des autorisations est l’une des tâches fondamentales pour les administrateurs d’Ubuntu Server. Que vous configuriez un environnement multi-utilisateur ou que vous sécurisiez votre serveur, il est essentiel de comprendre comment créer, modifier et gérer les comptes utilisateur, les groupes et les autorisations. Ce guide offre un aperçu approfondi de la gestion des utilisateurs et des autorisations, avec des exemples concrets, des sorties de commandes et des bonnes pratiques.
Article précédent:
01. Introduction à Ubuntu Server – SysOSX: AI & Cloud
02. Comment configurer votre premier serveur Ubuntu : guide du débutant – SysOSX: AI & Cloud
03. Maîtriser la ligne de commande Linux pour Ubuntu Server
Introduction
Ubuntu Server est une plateforme puissante pour héberger des applications, gérer des services et permettre des environnements multi-utilisateurs. En maîtrisant la gestion des utilisateurs et des autorisations, vous pouvez sécuriser votre serveur, contrôler efficacement l’accès et empêcher les actions non autorisées. Ce guide couvrira tout, de la création de base de comptes utilisateur aux paramètres d’autorisation avancés, avec des exemples détaillés.
Créer et gérer des comptes utilisateur
Créer un utilisateur
Pour créer un compte utilisateur sur Ubuntu Server, utilisez la commande adduser. Cette commande est interactive et vous demande des informations supplémentaires sur l’utilisateur.
Exemple de commande :
sudo adduser john
Exemple de sortie :
Adding user `john' ...
Adding new group `john' (1001) ...
Adding new user `john' (1001) with group `john' ...
Creating home directory `/home/john' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for john
Enter the new value, or press ENTER for the default
Full Name []: John Doe
Room Number []: 101
Work Phone []: 555-1234
Home Phone []: 555-5678
Other []:
Is the information correct? [Y/n] Y
Cela crée un utilisateur nommé john avec un répertoire personnel à l’adresse /home/john et lui attribue un ID utilisateur (UID) unique.
Modifier un utilisateur
La commande usermod vous permet de modifier les comptes utilisateur. Par exemple, vous pouvez modifier le répertoire personnel, le shell ou les appartenances aux groupes d’un utilisateur.
Changer le répertoire personnel :
sudo usermod -d /home/new_john john
sudo mv /home/john /home/new_john
Verrouiller ou déverrouiller un compte utilisateur :
- Verrouiller le compte :
sudo passwd -l john - Déverrouiller le compte :
sudo passwd -u john
Exemple de sortie (verrouillage du compte) :
passwd: password expiry information changed.
Supprimer un utilisateur
Pour supprimer un utilisateur, utilisez la commande deluser. Vous pouvez également supprimer son répertoire personnel et les fichiers associés.
Exemple de commande :
sudo deluser --remove-home john
Exemple de sortie :
Looking for files to backup/remove ...
Removing files ...
Removing user `john' ...
Warning: group `john' has no more members.
Done.
Gérer les groupes
Les groupes permettent d’organiser les utilisateurs et d’attribuer des autorisations collectives. Chaque utilisateur peut appartenir à plusieurs groupes.
Créer et gérer les groupes
Pour créer un groupe, utilisez la commande addgroup.
Exemple de commande :
sudo addgroup developers
Exemple de sortie :
Adding group `developers' (GID 1002) ...
Done.
Pour supprimer un groupe :
sudo delgroup developers
Ajouter des utilisateurs à des groupes
Pour ajouter un utilisateur à un groupe, utilisez la commande usermod avec l’option -aG.
Exemple de commande :
sudo usermod -aG developers john
Vérifier l’appartenance à un groupe :
groups john
Exemple de sortie :
john : john developers
Cela montre que john appartient aux groupes john et developers.
Comprendre les autorisations des fichiers et des répertoires
Les autorisations de fichiers Linux sont essentielles pour contrôler l’accès aux fichiers et aux répertoires. Les autorisations sont définies pour trois catégories : Propriétaire, Groupe, et Autres.
Types d’autorisations
Chaque catégorie comporte trois types d’autorisations :
- Lecture (r) : permet de visualiser le contenu des fichiers ou de lister le contenu des répertoires.
- Écriture (w) : permet de modifier le contenu des fichiers ou de créer/supprimer des fichiers dans un répertoire.
- Exécution (x) : permet d’exécuter des fichiers exécutables ou d’accéder aux répertoires.
Exemple :
Utilisez ls -l pour afficher les autorisations de fichier :
ls -l /home/john
Exemple de sortie :
-rw-r--r-- 1 john john 4096 Mar 21 14:00 file.txt
rw-: le propriétaire (john) dispose des autorisations de lecture et d’écriture.r--: le groupe (john) dispose d’autorisations en lecture seule.r--: les autres disposent d’autorisations en lecture seule.
Modifier les autorisations
Utilisez la commande chmod pour modifier les autorisations.
Exemples de commandes :
- Accorder l’autorisation d’exécution au propriétaire :
chmod u+x file.txt - Supprimer l’autorisation d’écriture pour les autres : chmod o-w file.txt
Utiliser des valeurs numériques :
Les autorisations peuvent également être définies à l’aide de valeurs numériques :
chmod 755 file.txt : autorisations complètes pour le propriétaire, lecture/exécution pour le groupe et les autres.
Comprendre les autorisations numériques (755, 777, 744)
Les autorisations Linux peuvent être représentées numériquement, chaque chiffre correspondant à un niveau d’autorisation spécifique :
Structure des autorisations numériques :
Chaque autorisation numérique se compose de trois chiffres :
- Premier chiffre : autorisations pour le propriétaire.
- Deuxième chiffre : autorisations pour le groupe.
- Troisième chiffre : autorisations pour les autres.
Chaque chiffre est calculé à partir des valeurs suivantes :
4: lecture (r)2: écriture (w)1: exécution (x)
La somme de ces valeurs détermine le niveau d’autorisation pour chaque catégorie.
Autorisations numériques courantes :
- 777 : autorisations complètes pour tous (lecture, écriture, exécution).
- Propriétaire :
rwx - Groupe :
rwx - Autres :
rwx - Cas d’usage : rarement utilisé pour des raisons de sécurité, mais peut s’appliquer aux répertoires temporaires comme
/tmp.
- Propriétaire :
- 755 : autorisations complètes pour le propriétaire, autorisations de lecture et d’exécution pour le groupe et les autres.
- Propriétaire :
rwx - Groupe :
r-x - Autres :
r-x - Cas d’usage : courant pour les fichiers exécutables ou les répertoires.
- Propriétaire :
- 744 : autorisations complètes pour le propriétaire, lecture seule pour le groupe et les autres.
- Propriétaire :
rwx - Groupe :
r-- - Autres :
r-- - Cas d’usage : courant pour les fichiers privés.
- Propriétaire :
Exemple :
Pour définir les autorisations d’un script sur 755 :
chmod 755 script.sh
Exemple de sortie :
-rwxr-xr-x 1 john john 4096 Mar 21 14:00 script.sh
Gestion de la propriété
Modifiez la propriété à l’aide de la commande chown.
Exemple de commande :
sudo chown john:developers file.txt
Cela définit le propriétaire sur john et le groupe sur developers.
Exemple de sortie :
-rw-r--r-- 1 john developers 4096 Mar 21 14:00 file.txt
Utiliser Sudo pour l’élévation de privilèges
La commande sudo permet aux utilisateurs d’exécuter des commandes avec des privilèges élevés. Pour accorder à un utilisateur l’accès sudo, ajoutez-le au groupe sudo.
Exemple de commande :
sudo usermod -aG sudo john
Vérifier l’accès Sudo :
sudo -l -U john
Exemple de sortie :
User john may run the following commands on this host:
(ALL : ALL) ALL
Bonnes pratiques pour sécuriser les comptes utilisateur
- Appliquer des politiques de mots de passe strictes:
Utilisezpasswdpour définir l’expiration du mot de passe :sudo passwd -e john - Limiter l’accès Sudo:
Accordez les privilègessudouniquement aux utilisateurs de confiance. - Désactiver la connexion root:
Modifiez le fichier de configuration SSH :
sudo nano /etc/ssh/sshd_config
Définir :
PermitRootLogin no
- Utiliser des clés SSH pour l’authentification:
Remplacez la connexion par mot de passe par des clés SSH. - Surveiller l’activité des utilisateurs:
Utilisezlastouwhopour suivre l’activité de connexion :
last
Explication de la sortie
uadmin pts/1 192.168.255.48 Fri Mar 21 13:55 still logged in
uadmin pts/0 192.168.255.48 Fri Mar 21 13:54 still logged in
uadmin pts/1 192.168.255.48 Fri Mar 21 01:49 - 08:19 (06:29)
uadmin pts/0 192.168.255.48 Fri Mar 21 00:53 - 08:19 (07:26)
reboot system boot 6.8.0-1021-azure Fri Mar 21 00:22 still running
Analyse ligne par ligne
Connexion utilisateur : uadmin pts/1 192.168.255.48 Fri Mar 21 13:55 still logged in
uadmin: le nom d’utilisateur de l’utilisateur qui s’est connecté.pts/1: la session de pseudo-terminal utilisée pour la connexion. Les pseudo-terminaux (pts) sont des terminaux virtuels, généralement créés lorsque les utilisateurs se connectent via SSH.192.168.255.48: l’adresse IP de la machine distante depuis laquelle l’utilisateur s’est connecté.Fri Mar 21 13:55: la date et l’heure auxquelles l’utilisateur s’est connecté.still logged in: indique que l’utilisateur est actuellement connecté et actif.
| Colonne | Signification |
|---|---|
| Nom d’utilisateur | Nom de l’utilisateur ou de l’événement (uadmin, reboot). |
| Terminal | Session de pseudo-terminal (pts/X) ou événement système (system boot). |
| Hôte distant/IP | Adresse IP ou nom d’hôte de la machine distante qui initie la connexion. |
| Date/heure de connexion | Date et heure du début de la connexion ou de l’événement. |
| Heure de déconnexion | Date et heure de fin de la session (le cas échéant). |
| Durée | Durée totale de la session (le cas échéant). |
| Statut de la session | Statut actuel de la session (still logged in, still running). |
Commandes supplémentaires pour en savoir plus
- Afficher les utilisateurs actuellement connectés:
who - Exemple de sortie :
uadmin pts/1 2023-03-21 13:55 (192.168.255.48)
uadmin pts/0 2023-03-21 13:54 (192.168.255.48)
- Vérifier le temps de fonctionnement du système:
uptime - Exemple de sortie :
14:15:32 up 13:53, 2 users, load average: 0.10, 0.12, 0.15
Conclusion
La gestion des utilisateurs, des groupes et des autorisations est une compétence fondamentale pour les administrateurs d’Ubuntu Server. En maîtrisant ces tâches, vous pouvez sécuriser votre serveur, empêcher tout accès non autorisé et améliorer l’efficacité opérationnelle.
Prochain tutoriel : Bases des réseaux pour Ubuntu Server
Dans le prochain tutoriel, nous aborderons les bases des réseaux pour Ubuntu Server, notamment la configuration des interfaces réseau, la mise en place d’adresses IP statiques, le dépannage de la connectivité réseau et l’utilisation de netplan d’Ubuntu pour les tâches réseau. Restez à l’écoute pour des informations concrètes visant à optimiser la configuration réseau de votre serveur.
7 thoughts on “04. Managing Users and Permissions on Ubuntu Server: A Comprehensive Guide”