3.3. Utiliser des outils de ligne de commande

À l'exception de l'outil de configuration de Users décrit dans la Section 3.2, « Gestion des utilisateurs dans un environnement graphique », qui est conçu pour la gestion de base des utilisateurs, il est possible d'utiliser des outils de ligne de commande pour gérer les utilisateurs et les groupes répertoriés dans la Tableau 3.1, « Utilitaires en ligne de commande pour gérer les utilisateurs et les groupes ».

Tableau 3.1. Utilitaires en ligne de commande pour gérer les utilisateurs et les groupes

UtilitairesDescription
idAffiche les ID d'utilisateur et de groupe.
useradd, usermod, userdelUtilitaires standard pour ajouter, modifier, et supprimer des comptes utilisateur.
groupadd, groupmod, groupdelUtilitaires standard pour ajouter, modifier, et supprimer des groupes.
gpasswdUtilitaire utilisé surtout pour modifier le mot de passe du groupe dans le fichier /etc/gshadow utilisé par la commande newgrp.
pwck, grpckUtilitaires pouvant être utilisés pour la vérification du mot de passe, du groupe et des fichiers cachés associés.
pwconv, pwunconvUtilitaires pouvant être utilisés pour la conversion de mots de passe en mots de passe cachés, ou au contraire de mots de passe cachés en mots de passe standard.
grpconv, grpunconvDe manière similaire à ce qui précède, ces utilitaires peuvent être utilisés pour la conversion d'informations cachées pour les comptes de groupe.

3.3.1. Ajout d'un nouvel utilisateur

Pour ajouter un nouvel utilisateur sur le système, veuillez saisir ce qui suit dans une invite de shell en tant qu'utilisateur root :
useradd [options] username
…où les options sont des options de ligne de commande comme décrit dans la Tableau 3.2, « Options de ligne de commande useradd communes ».
Par défaut, la commande useradd crée un compte utilisateur verrouillé. Pour déverrouiller le compte, veuillez exécuter la commande suivante en tant qu'utilisateur root pour assigner un mot de passe :
passwd username
Optionnellement, vous pouvez définir une politique d'ancienneté de mot de passe. Veuillez consulter la section Sécurité du mot de passe du Guide de sécurité Red Hat Enterprise Linux 7 .

Tableau 3.2. Options de ligne de commande useradd communes

OptionDescription
-c 'comment'comment peut être remplacé par n'importe quelle chaîne. Cette option est généralement utilisée pour spécifier le nom complet d'un utilisateur.
-d home_directoryRépertoire personnel à utiliser à la place de /home/username/.
-e dateDate à laquelle le compte sera désactivé sous le format YYYY-MM-DD.
-f daysNombre de jours après l'expiration du mot de passe avant que le compte soit désactivé. Si 0 est spécifié, le compte est désactivé immédiatement après l'expiration du mot de passe. Si -1 est spécifié, le compte n'est pas désactivé après l'expiration du mot de passe.
-g group_nameNom de groupe ou numéro de groupe du groupe (principal) par défaut de l'utilisateur. Le groupe doit exister avant d'être spécifié ici.
-G group_listListe des noms ou numéros de groupes supplémentaires (autres que ceux par défaut), séparés par des virgules, dont l'utilisateur est membre. Les groupes doivent exister avant d'être spécifiés ici.
-mCréer le répertoire personnel s'il n'existe pas.
-MNe pas créer de répertoire personnel.
-fNe pas créer de groupe privé d'utilisateurs pour l'utilisateur.
-p passwordMot de passe chiffré avec crypt.
-rEntraîne la création d'un compte système avec un ID utilisateur (UID) inférieur à 1000 et sans répertoire personnel.
-sShell de connexion de l'utilisateur, qui est par défaut /bin/bash.
-u uidID utilisateur de l'utilisateur, qui doit être unique et supérieur à 999.
Les options de ligne de commande associées à la commande usermod sont essentiellement les mêmes. Remarquez que si vous souhaitez ajouter un utilisateur à un autre groupe supplémentaire, vous devrez utiliser l'option -a, --append avec l'option -G. Sinon, la liste des groupes supplémentaires de l'utilisateur sera remplacée par ceux spécifiés par la commande usermod -G.

Important

La gamme des ID par défaut des utilisateurs normaux et système a été modifiée dans Red Hat Enterprise Linux 7 comparé aux versions antérieures. Auparavant, les UID 1 à 499 étaient utilisés pour les utilisateurs système et des valeurs supérieures étaient utilisées pour les utilisateurs normaux. La gamme par défaut des maintenant de 1-999 pour les utilisateurs système. Ce changement peut causer des problèmes lors de la migration vers Red Hat Enterprise Linux 7 avec des utilisateurs existants pouvant avoir des UID et des GID entre 500 et 999. Les gammes par défaut des UID et GID peuvent être modifiées dans le fichier /etc/login.defs.

Explication du processus

Les étapes suivantes illustrent ce qu'il se produit si la commande useradd juan est exécutée sur un système sur lequel les mots de passe cachés sont activés :
  1. Une nouvelle ligne pour juan est créée dans /etc/passwd :
    juan:x:1001:1001::/home/juan:/bin/bash
    La ligne possède les caractéristiques suivantes :
    • Celle-ci commence par le nom d'utilisateur juan.
    • Un x se trouve dans le champ du mot de passe, indiquant que le système utilise des mots de passe cachés.
    • Un UID supérieur à 999 est créé. Dans Red Hat Enterprise Linux 7, les UID inférieurs à 1000 sont réservés à l'utilisation système et ne doivent pas être assignés aux utilisateurs.
    • Un GID supérieur à 999 est créé. Dans Red Hat Enterprise Linux 7, les GID inférieurs à 1000 sont réservés à l'utilisation système et ne doivent pas être assignés aux utilisateurs.
    • Les informations optionnelles GECOS sont laissées vides. Le champ GECOS peut être utilisé pour fournir des informations supplémentaires sur l'utilisateur, comme son nom complet ou son numéro de téléphone.
    • Le répertoire personnel de juan est défini sur /home/juan/.
    • Le shell par défaut est défini sur /bin/bash.
  2. Une nouvelle ligne pour juan est créée dans /etc/shadow:
    juan:!!:14798:0:99999:7:::
    La ligne possède les caractéristiques suivantes :
    • Celle-ci commence par le nom d'utilisateur juan.
    • Deux points d'exclamation (!!) apparaissent dans le champ du mot de passe du fichier /etc/shadow, qui verrouille le compte.

      Note

      Si un mot de passe chiffré est saisi en utilisant l'indicateur -p, il sera placé dans le fichier /etc/shadow sur la nouvelle ligne pour l'utilisateur.
    • Le mot de passe est paramétré de manière à ne jamais expirer.
  3. Une nouvelle ligne pour un groupe nommé juan est créée dans /etc/group :
    juan:x:1001:
    Un groupe avec le même nom qu'un utilisateur est appelé un groupe privé d'utilisateurs. Pour obtenir davantage d'informations sur les groupes privés d'utilisateurs, veuillez consulter la section Section 3.1.1, « Groupes privés d'utilisateurs ».
    La ligne créée dans /etc/group possède les caractéristiques suivantes :
    • Celle-ci commence par le nom de groupe juan.
    • Un x apparaît dans le champ du mot de passe, indiquant que le système utilise des mots de passe de groupe cachés.
    • Le GID correspond à celui qui est répertorié pour le groupe principal de juan dans /etc/passwd.
  4. Une nouvelle ligne pour un groupe nommé juan est créée dans /etc/gshadow :
    juan:!::
    La ligne possède les caractéristiques suivantes :
    • Celle-ci commence par le nom de groupe juan.
    • Un point d'exclamation (!) apparaît dans le champ du mot de passe du fichier /etc/gshadow, qui verrouille le groupe.
    • Tous les autres champs sont vierges.
  5. Un répertoire pour l'utilisateur juan est créé dans le répertoire /home :
    ~]# ls -ld /home/juan
    drwx------. 4 juan juan 4096 Mar  3 18:23 /home/juan
    Ce répertoire appartient à l'utilisateur juan et au groupe juan. Il possède les privilèges read (lecture), write (écriture), et execute (exécution) uniquement pour l'utilisateur juan. Toutes les autres permissions sont refusées.
  6. Les fichiers dans le répertoire /etc/skel/ (qui contient les paramètres par défaut de l'utilisateur) sont copiés dans le nouveau répertoire /home/juan/ :
    ~]# ls -la /home/juan
    total 28
    drwx------. 4 juan juan 4096 Mar  3 18:23 .
    drwxr-xr-x. 5 root root 4096 Mar  3 18:23 ..
    -rw-r--r--. 1 juan juan   18 Jun 22  2010 .bash_logout
    -rw-r--r--. 1 juan juan  176 Jun 22  2010 .bash_profile
    -rw-r--r--. 1 juan juan  124 Jun 22  2010 .bashrc
    drwxr-xr-x. 4 juan juan 4096 Nov 23 15:09 .mozilla
À ce moment, un compte verrouillé nommé juan existe sur le système. Pour l'activer, l'administrateur doit assigner un mot de passe au compte en utilisant la commande passwd et optionnellement, paramétrer des directives concernant l'ancienneté du mot de passe (veuillez consulter la section Sécurité du mot de passe dans le Guide de sécurité Red Hat Enterprise Linux 7 pour obtenir des détails supplémentaires).

3.3.2. Ajout d'un nouveau groupe

Pour ajouter un nouveau groupe au système, veuillez saisir ce qui suit dans l'invite de shell en tant qu'utilisateur root :
groupadd [options] group_name
…où les options sont des options de ligne de commande comme décrit dans la Tableau 3.3, « Options de ligne de commande groupadd communes ».

Tableau 3.3. Options de ligne de commande groupadd communes

OptionDescription
-f, --forceLorsqu'utilisé avec -g gid et que gid existe déjà, groupadd choisira un nouveau gid unique pour le groupe.
-g gidID de groupe du groupe, qui doit être unique et supérieur à 999.
-K, --key key=valueRemplace les valeurs par défaut de /etc/login.defs.
-o, --non-uniquePermet la création de groupes avec un GID dupliqué.
-p, --password passwordUtilise ce mot de passe chiffré pour le nouveau groupe.
-rEntraîne la création d'un groupe système avec un GID inférieur à 1000.

3.3.3. Création de répertoire de groupes

Les administrateurs système préfèrent habituellement créer un groupe pour chaque projet majeur et assigner des personnes à ce groupe lorsqu'elles ont besoin d'accéder aux fichiers de ce projet. Avec ce schéma traditionnel, la gestion de fichiers est difficile. Lorsque quelqu'un crée un fichier, celui-ci est associé au groupe principal auquel il appartient. Lorsqu'une seule personne travaille sur de multiples projets, il devient difficile d'associer les fichiers corrects au bon groupe. Cependant, avec le schéma UPG, les groupes sont automatiquement assignés aux fichiers créés dans un répertoire sur lequel setgid est défini. « Setgid » rend la gestion des projets de groupes qui partagent un répertoire commun très simple car tout fichier créé par un utilisateur dans le répertoire appartiendra au groupe propriétaire de ce répertoire.
Par exemple, un groupe de personnes a besoin de travailler sur des fichiers du répertoire /opt/myproject/. Il est fait confiance à certaines personnes pour modifier le contenu de ce répertoire, mais pas à tout le monde.
  1. En tant qu'utilisateur root, veuillez créer le répertoire /opt/myproject/ en saisissant ce qui suit dans l'invite de shell :
    mkdir /opt/myproject
  2. Ajoutez le groupe myproject au système :
    groupadd myproject
  3. Associez le contenu du répertoire /opt/myproject/ au groupe myproject :
    chown root:myproject /opt/myproject
  4. Autorisez les utilisateurs du groupe à créer des fichiers dans le répertoire et paramétrez le setgid :
    chmod 2775 /opt/myproject
    À ce moment, tous les membres du groupe myproject peuvent créer et modifier des fichiers dans le répertoire /opt/myproject/ sans que l'administrateur ne soit obligé de modifier les permissions de fichier à chaque fois qu'un utilisateur écrit un nouveau fichier. Pour vérifier si les permissions ont été paramétrées correctement, veuillez exécuter la commande suivante :
    ~]# ls -ld /opt/myproject
    drwxrwsr-x. 3 root myproject 4096 Mar  3 18:31 /opt/myproject
  5. Ajoutez les utilisateurs au groupe myproject :
    usermod -aG myproject username