CodeGym /Cours /Docker SELF /Gestion des utilisateurs : commandes adduser, usermod, pa...

Gestion des utilisateurs : commandes adduser, usermod, passwd

Docker SELF
Niveau 2 , Leçon 1
Disponible

Gestion des utilisateurs : commandes adduser, usermod, passwd

1. Pourquoi est-il important de comprendre la gestion des utilisateurs ?

Aujourd'hui, on va plonger dans la gestion des utilisateurs, car c’est une partie essentielle de l’administration Linux. Créer des utilisateurs, configurer leur environnement et gérer leurs mots de passe – tout cela deviendra des outils importants pour ton travail. C’est parti !

Souvent, sous Linux, il y a plusieurs utilisateurs qui travaillent sur le même serveur. Le système leur attribue des droits spécifiques pour protéger les données et éviter le chaos. Tu dois savoir comment ajouter de nouveaux utilisateurs (par exemple, des développeurs dans ton équipe), configurer leur environnement (comme changer le shell) et, si besoin, limiter l'accès.


2. Création d’un utilisateur avec adduser

Linux fournit la commande adduser, qui est une version conviviale de la commande useradd. Elle permet de créer facilement et rapidement de nouveaux utilisateurs :

Syntaxe de base

adduser nom_utilisateur

Que se passe-t-il lorsqu’un utilisateur est créé ?

  1. Une nouvelle entrée est créée dans le fichier /etc/passwd pour l’utilisateur.
  2. Un répertoire personnel est généré (par exemple, /home/nom_utilisateur).
  3. Les paramètres de base sont configurés (par exemple, le shell par défaut).
  4. On te demandera de saisir un mot de passe et des informations supplémentaires (comme le nom, le numéro de téléphone — mais ces données sont facultatives).

Exemple

Créons un nouvel utilisateur dev_user :

sudo adduser dev_user

Après avoir saisi cette commande, on te proposera :

  1. De définir un mot de passe pour l’utilisateur.
  2. D’entrer des informations supplémentaires, que tu peux ignorer en appuyant simplement sur Enter.

Vérification

Pour confirmer que l’utilisateur a été créé, tu peux consulter le fichier /etc/passwd :

cat /etc/passwd | grep dev_user

Tu verras une ligne contenant des informations sur l’utilisateur dev_user.


3. Configuration d'un utilisateur avec usermod

Quand un utilisateur est déjà créé, il peut être nécessaire de modifier ses paramètres. Par exemple, changer son nom, spécifier un autre shell ou l’ajouter à un groupe.

Changement de nom d'utilisateur

Commencez par vérifier que l’utilisateur n’est pas connecté au système. Ensuite, exécutez la commande :

sudo usermod -l nouveau_nom ancien_nom

Exemple :

sudo usermod -l developer dev_user

Maintenant, l’utilisateur dev_user sera appelé developer. Cependant, son répertoire personnel restera inchangé pour l’instant.

Changement de shell par défaut

Supposons que vous deviez changer le shell de l’utilisateur en /bin/zsh. Pour cela, exécutez :

sudo usermod --shell /bin/zsh developer

Vérifiez que le shell a changé à l’aide de la commande :

cat /etc/passwd | grep developer

Modification du répertoire personnel

Si vous souhaitez que le nouvel utilisateur travaille dans un autre répertoire personnel, faites ce qui suit :

sudo usermod -d /nouveau/chemin developer
Important :

si le répertoire n’existe pas encore, utilisez l'option -m afin qu’il soit créé et que le contenu de l’ancien répertoire soit déplacé :

sudo usermod -d /home/new_developer -m developer

4. Gestion des mots de passe avec passwd

Configurer et changer un mot de passe

Pour configurer (ou changer) le mot de passe d’un utilisateur, on utilise la commande suivante :

sudo passwd nom_utilisateur

Exemple :

sudo passwd developer

Le système te demandera d’entrer deux fois le nouveau mot de passe pour vérifier que tu ne t’es pas trompé.

Forcer le changement du mot de passe à la prochaine connexion

Ceci peut être utile si tu crées des utilisateurs et que tu veux qu’ils définissent eux-mêmes leur mot de passe lors de leur première connexion :

sudo passwd -e developer

Après cela, l’utilisateur developer, en se connectant au système, verra un message lui demandant de changer son mot de passe.


5. Pratique

Exercice 1 : Créer un nouvel utilisateur

  1. Ajoutons un utilisateur tester :

    sudo adduser tester
    
  2. Vérifiez que l'utilisateur est créé :

    cat /etc/passwd | grep tester
    

Exercice 2 : Configurer les paramètres de l'utilisateur

  1. Changez le nom de l'utilisateur :

    sudo usermod -l test_user tester
    
  2. Changez le répertoire personnel de l'utilisateur :

    sudo usermod -d /home/test_user -m test_user
    
  3. Assurez-vous que les changements sont appliqués :

    ls -l /home/
    
  4. Modifiez le shell de l'utilisateur :

    sudo usermod --shell /bin/zsh test_user
    
  5. Vérifiez les données mises à jour de l'utilisateur :

    cat /etc/passwd | grep test_user
    

Exercice 3 : Définir un nouveau mot de passe pour l'utilisateur

  1. Définissez un mot de passe pour l'utilisateur :

    sudo passwd test_user
    
  2. Forcez l'utilisateur à changer de mot de passe à la prochaine connexion :

    sudo passwd -e test_user
    

6. Introduction aux pipes | sous Linux

Les pipes | sont un mécanisme dans Unix/Linux qui permet de passer la sortie d'une commande (stdout) comme entrée (stdin) pour une autre commande. C'est un outil puissant qui permet de combiner des commandes en créant des "pipelines" pour le traitement des données.

Comment ça marche ?

Quand tu utilises un pipe entre des commandes, Linux redirige la sortie standard de la première commande vers l'entrée standard de la suivante. Cela permet de traiter efficacement de gros volumes de données sans fichiers temporaires.

Syntaxe :

commande1 | commande2 | commande3
  • commande1 génère des données.
  • commande2 traite les données reçues.
  • commande3 effectue un traitement supplémentaire ou enregistre le résultat.

Exemple :

Afficher la liste des fichiers et filtrer par modèle :

ls -l | grep ".txt"

Ici, ls -l affiche la liste des fichiers, et grep filtre uniquement les fichiers avec l'extension .txt.

Compter les lignes contenant un mot spécifique :

cat file.txt | grep "Linux" | wc -l

On affiche successivement le contenu du fichier, on cherche les lignes contenant "Linux", puis on compte leur nombre.

Avantages des pipes :

  • Simplification des opérations complexes.
  • Réduction de l'utilisation des fichiers temporaires.
  • Possibilité de combiner les puissants outils de Linux pour automatiser les tâches.

7. Introduction à grep dans Linux

grep (Global Regular Expression Print) — c'est un utilitaire de ligne de commande sous Unix/Linux pour rechercher des lignes dans des fichiers qui correspondent à un modèle spécifié. Il est largement utilisé pour filtrer et rechercher des données grâce au support des expressions régulières et à ses paramètres flexibles.

Comment fonctionne grep ?

  • grep prend en entrée un fichier texte (ou une entrée standard), recherche les lignes qui correspondent au modèle spécifié et les affiche.
  • Si le modèle n'est pas trouvé, la commande ne produit aucune sortie.

Exemples

Afficher la liste des fichiers et filtrer par modèle :

ls -l | grep ".txt"
  1. D'abord, la commande ls -l s'exécute, affichant la liste des fichiers dans le répertoire courant.
  2. La sortie de la première commande ls est redirigée comme entrée pour la seconde commande grep à l'aide du pipe |.
  3. La seconde commande filtre les lignes qui lui sont envoyées et affiche uniquement celles contenant ".txt".

Compter les lignes contenant un mot spécifique :

cat file.txt | grep "Linux" | wc -l
  1. D'abord, la commande cat file.txt s'exécute, affichant le contenu du fichier file.txt.
  2. La sortie de la première commande cat est redirigée comme entrée pour la seconde commande grep à l'aide du pipe |.
  3. La seconde commande filtre les lignes qui lui sont envoyées et affiche uniquement celles contenant "Linux".
  4. Puis, la sortie de la seconde commande grep est redirigée comme entrée pour la troisième commande wc à l'aide du pipe |.
  5. La troisième commande compte les lignes qui lui sont envoyées et affiche leur nombre.

8. Erreurs typiques et nuances

  1. Erreur "user is currently logged in" lors du changement de nom d'utilisateur. Si l'utilisateur est connecté au système, tu ne pourras pas modifier son nom. Assure-toi que l'utilisateur s'est déconnecté.

  2. Erreurs lors du changement du répertoire personnel. Si tu oublies d'ajouter -m, le contenu de l'ancien répertoire ne sera pas déplacé vers le nouveau. L'utilisateur peut perdre ses données.

  3. Tu as oublié d'attribuer un mot de passe à l'utilisateur. Après avoir créé un utilisateur avec adduser, vérifie impérativement qu'un mot de passe lui est attribué. Sans mot de passe, il ne pourra pas se connecter.

  4. Valeurs de UID et GID. Parfois, les administrateurs veulent spécifier les valeurs de UID (identifiant utilisateur) et GID (identifiant de groupe) lors de la création d'un utilisateur. Pour cela, on utilise la commande useradd, mais c'est un sujet pour une étude plus approfondie de Linux.


9. Application pratique

Imaginez : vous êtes l’administrateur des serveurs de l’entreprise. Les développeurs viennent vous voir, et chacun d’eux exige un accès au système avec des paramètres individuels. Vous pourrez :

  • Créer des utilisateurs et leur attribuer les accès nécessaires.
  • Configurer l’environnement (par exemple, le shell) en fonction de leurs préférences.
  • Gérer les mots de passe et assurer la sécurité.

Ces commandes vous seront également utiles lors d’un entretien pour un poste de DevOps ou d’administrateur système. On pourrait vous demander comment vous créeriez et configureriez des utilisateurs, ou vous proposer de réaliser cette tâche en pratique.


Mémo : commandes principales

Commande Description
sudo adduser nom_utilisateur Crée un nouvel utilisateur.
sudo usermod -l nouveau ancien Change le nom de l’utilisateur.
sudo usermod --shell chemin nom Définit le shell par défaut.
sudo usermod -d chemin nom Change le répertoire personnel.
sudo passwd nom Définit un nouveau mot de passe.
sudo passwd -e nom Force à changer le mot de passe lors de la prochaine connexion.

Pratiquez-vous ! Linux, c'est toujours du travail manuel. Plus vous expérimentez avec les commandes, plus il vous sera facile de travailler avec des systèmes réels.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION