Gestion d’utilisateurs

Comment ajouter de nouveaux utilisateurs, de nouveaux groupes et associer des utilisateurs aux groupes. Voici la liste des commandes facilitant la gestion de vos utilisateurs système.

Comment garder un oeil sur les relations des utilisateurs et des groupes

À tout moment que vous devez créer ou modifier les relations entre des utilisateurs et des groupes de votre système, quelques commandes permettent d’obtenir tous les utilisateurs, les groupes et l’appartenance de ses derniers entre eux.

Commandes utiles
# Voir tous les utilisateurs de votre système
cut -d : -f 1 /etc/passwd

# Voir tous les groupes de votre système
cut -d : -f 1 /etc/group

# Voir tous les utilisateurs appartenant à un groupe "webgroup"
getent group webgroup

# Voir tous les groupes associés à un utilisateur "webuser"
groups webuser

Quels sont nos options pour créer un nouvel utilisateur?

Deux méthodes existent pour créer un utilisateur. La première méthode contient une commande de “haut-niveau” et le système vous demandera d’entrer les informations additionnels. Ses commandes ont tous un suffixe “user”. La deuxième méthode contient des commandes de “bas-niveau” qui nécessitera des commandes supplémentaires si vous désirez reproduire le même résultat que la première méthode. Ses commandes ont tous un préfixe “user”.

L’avantage principal de la méthode à “bas-niveau” est de connaître les possibilités offertes pour personnaliser vos utilisateurs.

Créer un utilisateur avec la commande “haut-niveau”

En utilisant la première méthode, nous allons créer un utilisateur “webuser” et le système nous exigera d’entrer un mot de passe ainsi que plusieurs informations optionnelles tel que son nom complet. En plus de créer l’utilisateur, un groupe du même nom se créera, associant par le fait même l’utilisateur et le groupe. De plus, un dossier du même nom se créera dans le dossier “/home/webuser/”.

Suivant la création de l’utilisateur “webuser”, nous allons créer un groupe “webgroup” à laquelle nous ajouterons l’utilisateur au groupe.

Ajouter un nouvel utilisateur et groupe
# Créer l'utilisateur "webuser"
sudo adduser webuser

# Créer le groupe "webgroup"
sudo groupadd webgroup

# Associer l'utilisateur "webuser" au groupe "webgroup"
sudo usermod -G webgroup -a webuser

À un certain point, vous aurez besoins de donner à l’un de vos utilisateurs, un accès super-utilisateur qui lui permettra de modifier les fichiers systèmes. Cet accès super-utilisateur est accessible aux utilisateurs appartenant au groupe “sudo”. Pour donner un utilisateur ce droit, nous pouvons réutiliser la commande “usermod” pour ajouter l’utilisateur dans le groupe “sudo”.

Ajouter droit SUDO à un utilisateur
sudo usermod -G sudo -a webuser

Supprimer un utilisateur

Pour supprimer un utilisateur, nous allons utilisé la commande “deluser” en spécifiant le nom d’utilisateur à supprimer. Sans paramètre supplémentaire, le répertoire “home” de l’utilisateur ne sera pas supprimé et les permissions de son répertoire sera transféré avec le Unique Idenfier “uid” de cet utilisateur. Vous pourrez alors faire une copie de ce dossier avant de le supprimer. Ajouter le paramètre “–remove-home” si vous désirez supprimer son répertoire “home” en même temps que l’utilisateur.

En conséquence de l’utilisateur supprimé, le groupe du même nom sera supprimé si aucun autre utilisateur n’est associé à ce groupe.

Supprimer un utilisateur et son répertoire
sudo deluser webuser --remove-home

Supprimer un groupe

Supprimer un groupe est exécuté avec la commande “delgroup” en indiquant le nom du groupe à supprimer. Sans paramètre supplémentaire, le groupe sera supprimé même si d’autres utilisateurs sont associé à ce groupe. Pour éviter de supprimer un groupe étant associé à d’autres utilisateurs, vous pouvez ajouter le paramètre “–only-if-empty”.

Supprimer un groupe si aucun utilisateur n’est associé
sudo delgroup webgroup --only-if-empty

Retirer un utilisateur d’un groupe

Pour retirer un utilisateur appartenant à un groupe, la commande “deluser” sera utilisé. Ceci est confondant car elle ne supprimera pas l’utilisateur, seulement l’appartenance de l’utilisateur vis-à-vis un groupe. Il est important de bien fournir les 2 paramètres correspondant à l’utilisateur et le groupe.

Retirer un utilisateur appartenant à un groupe
sudo deluser webuser webgroup

Nous avons couvert l’essentiel de la création d’utilisateurs, de groupes et gérer l’appartenance entre eux.

Créer un utilisateur avec la commande “bas-niveau”

Cette partie de l’article est optionnel et informative et peut devenir plus intéressante si vous souhaitez faire la gestion d’utilisateurs dans un script. Regardons maintenant en détails comment utiliser ses commandes de bas-niveau pour créer un nouvel utilisateur.

Créer un nouvel utilisateur
# Créer un utilisateur "webuser"
sudo useradd webuser

# Changer le mot de passe de l'utilisateur
sudo passwd webuser

# Créer un répertoire "home" pour cet utilisateur
sudo mkhomedir_helper webuser

Maintenant, se connecter en tant que ce nouvel utilisateur.

Se connecter en tant que “webuser”
su webuser

Vous devrez voir dans votre terminal le caractère “$” sans indiqué votre nom d’utilisateur, l’adresse IP du serveur ni le répertoire actuel. Ceci indique que l’utilisateur utilise le shell “Dash”, au lieu du shell “Bash”. Vous pouvez modifier le shell utilisé avec la commande suivante. Après son exécution, vous devez vous déconnecter de l’utilisateur afin de prendre en compte les nouvelles modifications.

Assigner le shell BASH au lieu de DASH
# Changer le shell associé à l'utilisateur courant
chsh -s /bin/bash

# Se déconnecter
logout

# Changer l'utilisateur courant
su webuser

Maintenant, vous devrez voir votre nom d’utilisateur, l’adresse du serveur ainsi que le répertoire courant.

Conclusion

Vous avez un bref aperçu à la gestion des utilisateurs et des groupes en plus de donner un privilège super-utilisateur. Donnez ce droit seulement aux utilisateurs pouvant modifier les fichiers de votre système.

Maintenant que nous pouvons nous connecter au serveur à distance et que nous avons une compréhension de base sur la gestion des utilisateurs du système, nous pouvons abordé la création d’un environnement Web sous Linux, contenant PHP, NGINX et une base de données MySQL ou MariaDB.

Configuration LEMP - Ubuntu 20.04

2021-01-09Procédure d'installation de PHP, MariaDB et NGINX sur un serveur Ubuntu. Protéger votre domain en Installant vos certificats de sécurité avec Let's Encrypt.

Autres articles de cette série

  • #1 - Se connecter au serveur
    Après avoir louer votre nouveau serveur, votre hébergeur vous donne un accès avec un nom d'utilisateur et un mot de passe. Cet article vous guidera à la première étape de se connecter avec le protocol SSH, modifier le mot de passe de votre utilisateur et définir un mot de passe de l'utilisateur "root".
  • #2 - Service SSH
    Mettre à jour le système d'exploitation et renforcir la sécurité du service SSH en ajoutant quelques configurations supplémentaires.
  • #3 - Gestion d'utilisateurs
    Comment ajouter de nouveaux utilisateurs, de nouveaux groupes et associer des utilisateurs aux groupes. Voici la liste des commandes facilitant la gestion de vos utilisateurs système.
  • #4 - Configuration LEMP - Ubuntu 20.04
    Procédure d'installation de PHP, MariaDB et NGINX sur un serveur Ubuntu. Protéger votre domain en Installant vos certificats de sécurité avec Let's Encrypt.