Opérations sur les utilisateurs et les groupes

Dans ce chapitre on expose des opérations courantes sur les utilisateurs et les groupes comme :

  • Créer un nouvel utilisateur avec useradd
  • Définir un mot de passe avec passwd
  • Créer de nouveaux groupes
  • Ajouter un utilisateur à un groupe
  • Modifier les paramètres utilisateur et groupe
  • Verrouiller un compte
  • Modifier l’expiration du mot de passe
  • Supprimer un compte et un groupe

Pour toutes ces opérations vous devez disposer des droits root.

1. Créer un utilisateur

On utilise la commande /usr/sbin/useradd pour créer les nouveaux comptes utilisateurs.

La commande adduser est un lien symbolique qui pointe vers useradd sous RHEL/Centos. Sur les systèmes Debian adduser un script perl qui utilise useradd.

Quand elle est invoquée sans l’option -D, la commande useradd crée un nouveau compte utilisateur qui utilise les valeurs indiquées sur la ligne de commande et les valeurs par défaut du système. En fonction des options de la ligne de commande, la commande useradd fera la mise à jour des fichiers du système, elle pourra créer le répertoire personnel et copier les fichiers initiaux. Source : page man de useradd

Syntaxe de la commande useradd :

useradd [options] identifiant

Exercice

Exemple : ajouter l’utilisateur tintin (en tant que root ou avec sudo)

useradd tintin

Si vous utilisez cette commande sans option, les valeurs par défaut sont utilisées (sous Centos 7, notamment un groupe principal du même nom est créé ainsi que son répertoire personnel).

2. Commande useradd : options par défaut

Exercice

Vous pouvez afficher ces valeurs avec useradd -D, sous RHEL/Centos :

useradd –D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Note : Vous trouverez également ces informations dans le fichier /etc/default/useradd.

3. Commande useradd : options

On ira utilement lire la page manuel de useradd

man useradd

Les options de useradd sont nombreuses.

Exercice

Par exemple, sur un système RHEL/Centos :

useradd -d /home/tintin -G wheel,tintin -s /bin/sh milou

Cette dernière commande ajoute l’utilisateur milou dans les groupes secondaires wheel et tintin avec /bin/sh comme shell.

Que donne la commande id milou ?

4. Répertoire squelette

Le répertoire squelette contient les fichiers et répertoires qui seront copiés dans le répertoire personnel de l’utilisateur au moment de sa création.

Exercice

Selon les paramètres du système :

ls -la /etc/skel/
total 24
drwxr-xr-x.   3 root root   74  8 déc 21:03 .
drwxr-xr-x. 122 root root 8192 16 jan 23:44 ..
-rw-r--r--.   1 root root   18 26 sep 03:53 .bash_logout
-rw-r--r--.   1 root root  193 26 sep 03:53 .bash_profile
-rw-r--r--.   1 root root  231 26 sep 03:53 .bashrc
drwxr-xr-x.   4 root root   37  4 jui  2014 .mozilla

5. Définir un mot de passe

Exercice

C’est la commande passwd qui met à jour le mot de passe de l’utilisateur :

passwd tintin

6. Ajouter un groupe

Exercice

On peut ajouter des groupes facilement avec groupadd :

groupadd marketing

Exercice

On peut ajouter un utilisateur à un groupe avec gpasswd :

gpasswd -a milou marketing

Exercice

On peut ajouter un utilisateur à un groupe wheel (pour devenir sudoer sous RHEL/Centos) :

gpasswd -a francois wheel

Exercice

On peut retirer un utilisateur d’un groupe :

gpasswd -d milou marketing

7. Modifier les paramètres utilisateur

On change les paramètres des groupes avec le programme usermod.

Les options de usermod sont (voir man usermod) :

-d répertoire utilisateur
-g définit le GID principal
-l identifiant utilisateur
-u UID utilisateur
-s shell par défaut
-G ajoute l’utilisateur à des groupes secondaires
-m déplace le contenu du répertoire personnel vers le nouvel emplacement

Exercice

Par exemple :

usermod -d /home/francois -a -G francois milou

8. Modifier les paramètres d’un groupe

C’est le programme groupmod qui permet de changer les paramètres d’un groupe. On connaît entre autres les options suivantes :

-g GID
-n nom du groupe

9. Verrouiller un compte

On peut verrouiller un compte utilisateur de plusieurs manières.

En préfixant le mot de passe dans /etc/passwd par un “!”. Si vous utilisez les mots de passe masqués shadow, remplacez x par un *.

C’est ce que font les commandes suivantes :

  • pour verrouiller passwd -l ou usermod -L
  • pour déverrouiller passwd -u ou usermod -U

De plus, il est également possible de supprimer le mot de passe avec passwd -d.

Enfin, on peut attribuer l’interpréteur /bin/false à l’utilisateur dans /etc/passwd.

Exercice

Vérouiller tous les comptes créés lors de cette leçon.

10. Modifier l’expiration du mot de passe

La commande chage modifie le nombre de jours entre les changements de mot de passe et la date du dernier changement. Ces informations sont utilisées par le système pour déterminer si un utilisateur doit changer son mot de passe. Pour les lister les paramètres d’un utilisateur :

chage -l francois

Pour les détails :

man chage

Notons que :

  • La date est soit en jours UNIX, soit au format YYYY/MM/DD.
  • Tous ces délais sont dans le fichier /etc/shadow et peuvent être modifiés manuellement.

11. Suppression d’un compte et d’un groupe

On peut supprimer un compte utilisateur avec la commande userdel. Pour s’assurer de la suppression du répertoire utilisateur, utilisez l’option -r.

userdel -r tintin

Quelles seraient les opérations manuelles alternatives ?

Exercice

Supprimer tous les comptes créés lors de cette leçon.

12. Exercice : utilisateurs

Créer un utilisateur alpha avec comme politique de mot de passe une obligation de le changer à la prochaine connexion avec un âge maximum et une période d’inactivité de 30 jours et d’une longueur minimale de 12 caractères (chercher sur “Password Quality Checking”).

sudo chage -d 0 -M 30 -I 30 alpha
sudo chage -l alpha