La commande useradd ou adduser dans Linux


La plupart des utilisateurs connaissent la commande useradd ou adduser dans Linux. On a souvent besoin de créer des comptes d’utilisateurs dans Linux avec des permissions, des options ou des commentaires spécifiques.

Dans Linux, la commande useradd est un utilitaire de bas niveau qui permet d’ajouter et de créer des comptes d’utilisateurs dans Linux et les autres variantes sous Unix. Et la commande adduser est similaire, car c’est juste un lien symbolique de la première commande.
Dans certaines distributions Linux, la commande useradd est fournie avec de légères différences dans les versions et on vous conseille de lire sa documentation pour être sûr que la commande aura les mêmes comportements.

Quand on lance une commande useradd dans un terminal, elle exécute les choses suivantes :

  • Il modifie les fichiers /etc/passwd, /etc/shadow, /etc/group et /etc/gshadow pour le nouveau compte d’utilisateur.
  • Il crée et configure le répertoire Home pour le nouveau utilisateur.
  • Il définit les permissions et les propriétaires du répertoire home

La syntaxe basique de cette commande est :

useradd [options] username

Comment ajouter un nouveau utilisateur sous Linux

 

Pour ajouter et créer un nouvel utilisateur, vous utilisez la commande useradd ou adduser suivi par le nom d’utilisateur. Ce nom d’utilisateur sera utilisé pour se connecter au système. On peut ajouter un seul utilisateur à la fois et chaque nom doit être unique.

Par exemple, pour ajouter un nouveau utilisateur maniacgeek, vous utilisez la commande :

[root@maniacgeek ~]# useradd maniacgeek

Quand nous ajoutons un utilisateur avec la commande useradd, il est crée en mode verrouillé et pour le déverrouiller, on a besoin de configurer un mot de passe avec la commande passwd.

[root@maniacgeek ~]# passwd maniacgeek
Changing password for user maniacgeek.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Une fois que le nouveau utilisateur est crée, une entrée est automatiquement ajouté au fichier /etc/passwd. La forme de l’entrée sera :

maniacgeek:x:504:504:maniacgeek:/home/maniacgeek:/bin/bash

L’entrée suivante contient des valeurs séparées par des 2 points et chaque valeur possède sa propre signification. Ainsi :

  • Username: Le nom d’utilisateur dans le système et il doit être 1 et 32 caractères.
  • Password: Le mot de passe de l’utilisateur et il est stocké et crypté dans le fichier /etc/shadow.
  • User ID (UID): Chaque utilisateur possède un numéro d’identification unique. L’utilisateur root possède l’UID 0 et ceux entre 1 jusqu’à 99 sont pour des comptes prédéfinis. De même, les UID allant de 100 à 999 sont pour les comptes du système et les groupes.
  • Group ID (GID): Le numéro d’identification du groupe stocké dans le fichier /etc/group.
  • User Info: Cette valeur est facultative et on peut l’utiliser pour ajouter des informations supplémentaires sur l’utilisateur. On fournit ces informations avec la commande finger
  • Home Directory: Le chemin absolu du répertoire Home de l’utilisateur.
  • Shell: Le chemin absolu du Shell de l’utilisateur tel que /bin/bash.

Créer un utilisateur sous Linux avec un répertoire Home différent

 

Par défaut, la commande useradd crée le répertoire Home dans /home avec le nom d’utilisateur. Par exemple, nous voyons que le répertoire Home de maniacgeek est dans /home/maniacgeek.

Cependant, on peut le changer avec l’option -d et en fournissant le nouveau chemin du répertoire home, par exemple, /data/projects. Ainsi, la commande suivante va créer un utilisateur samganegie avec son répertoire home dans /data/projects :

[root@maniacgeek ~]# useradd -d /data/projects samganegie

Vous pouvez voir le répertoire Home et les autres informations sur l’utilisateur tels que son UID, GID, Shell et commentaires avec la commande :

[root@maniacgeek ~]# cat /etc/passwd | grep samganegie
samganegie:x:505:505::/data/projects:/bin/bash

Créer un utilisateur sous Linux avec UID spécifique

 

Dans Linux, chaque utilisateur possède son propre UID. Et à chaque fois qu’on crée un nouvel utilisateur, le système va assigner des UID à partir de 500, 501, 502, etc.

Mais on peut créer un nouvel utilisateur Linux avec un UID personnalisé avec l’option -u. Ainsi, la commande suivante va créer l’utilisateur monsieurmcgoo avec l’UID personnalisé 999

[root@maniacgeek ~]# useradd -u 999 monsieurmcgoo

Maintenant, vérifions que cet utilisateur possède bien l’UID que nous avons spécifié avec la commande :

[root@maniacgeek ~]# cat /etc/passwd | grep maniacgeek
monsieurmcgoo:x:999:999::/home/monsieurmcgoo:/bin/bash

Note : Assurez-vous que l’UID que vous spécifiez soit unique avant de l’utiliser.

Créer un utilisateur Linux avec un numéro de groupe spécifique

 

De même, chaque utilisateur possède son propre GID (Group Identification Number). Et nous pouvons définir des GID personnalisé avec l’option -g. Par exemple, nous créons un utilisateur frodon avec un UID et un GID personnalisé en utilisant simultanément les options -u et -g.

[root@maniacgeek ~]# useradd -u 1000 -g 500 frodon

Maintenant, voyons l’UID et le GID respectif de cet utilisateur dans le fichier /etc/passwd :

[root@maniacgeek ~]# cat /etc/passwd | grep frodon
frodon:x:1000:500::/home/frodon:/bin/bash

Ajouter un utilisateur Linux à plusieurs groupes

 

L’option -G (n’oubliez pas, Linux est sensible à la casse) permet d’ajouter un utilisateur dans plusieurs groupes. Chaque nom de groupe doit être séparé par une virgule sans aucun espace. Par exemple, nous ajoutons l’utilisateur maniacgeek dans les groupes admins, webadmin et developer.

 

[root@maniacgeek ~]# useradd -G admins,webadmin,developers maniacgeek

Maintenant, vérifions que l’assignation aux groupes multiples s’est bien passée.

[root@maniacgeek ~]# id maniacgeek
uid=1001(maniacgeek) gid=1001(maniacgeek)
groups=1001(maniacgeek),500(admins),501(webadmin),502(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh

Ajouter un utilisateur sous Linux sans le répertoire Home

 

Dans certains cas, on ne veut pas assigner un répertoire Home pour un utilisateur pour des raisons de sécurité. Ainsi, quand un utilisateur se connecte à un système qui vient juste de redémarrer, son répertoire Home sera root. Et si l’utilisateur utilise la commande su, alors on répertoire de connexion sera le répertoire Home du précédent utilisateur.

Pour créer un utilisateur sans son répertoire Home, utilisez l’option -M. Par exemple, la commande suivante va créer l’utilisateur bellemere sans le répertoire Home.

[root@maniacgeek ~]# useradd -M bellemere

Maintenant, vérifions que son répertoire Home est bien absent.

[root@maniacgeek ~]# ls -l /home/bellemere
ls: cannot access /home/bellemere: No such file or directory

 

Créer un utilisateur avec un compte intégrant une date d’expiration

 

Par défaut, la commande useradd ajoute un compte qui n’expirera jamais. Sa valeur d’expiration est 0 (indiquant un compte avec une durée infinie).

Cependant, on peut définir une date d’expiration avec l’option -e et en indiquant une date dans le format Année(4 chiffres)-Mois(2 chiffres)-Jour(2 chiffres). C’est pratique pour créer un compte temporaire avec une date limite.

Dans cet exemple, nous créons un utilisateur parasite avec une date d’expiration pour le 27 avril 2014.

[root@maniacgeek ~]# useradd -e 2014-04-27 parasite

Maintenant, vérifions la durée du compte et son mot de passe avec la commande chage.

[root@maniacgeek ~]# chage -l parasite
Last password change : Mar 29, 2014
Password expires : never
Password inactive : never
Account expires : Apr 27, 2014
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

Créer un utilisateur Linux avec un mot de passe intégrant une date d’expiration

 

L’option -f permet de définir un mot de passe qui possède une durée d’expiration. Une valeur de 0 désactive l’utilisateur dès que le mot de passe expire tandis qu’une valeur de -1 indique qu’il n’expirera jamais.

Dans cet exemple, on définit un mot de passe expirable sur 45 jours pour l’utilisateur maniacgeek en utilisant les options -e et -f.

[root@maniacgeek ~]# useradd -e 2014-04-27 -f 45 maniacgeek

 

Ajouter un utilisateur Linux avec des commentaires personnalisés

 

L’option -c permet d’ajouter des commentaires personnalisés à un utilisateur tels que son nom complet, son numéro de téléphone, etc dans le fichier /etc/passwd. Le commentaire est ajouté avec une seule ligne sans aucun espace

Par exemple, la commande suivante va ajouter l’utilisateur sam avec son nom complet Sam Ganegie dans le champs du commentaire :

[root@maniacgeek ~]# useradd -c "Sam Ganegie" sam

Et vous pouvez voir le commentaire sur l’utilisateur avec la commande

[root@maniacgeek ~]# tail -1 /etc/passwd
sam:x:1006:1008:Sam Ganegie:/home/sam:/bin/sh

Changer le shell d’un utilisateur Linux

 

Parfois, on veut qu’un utilisateur ne possède pas de Shell ou qu’on veut le changer. On peut le faire avec l’option -s.

Dans cet exemple, on ajoute un utilisateur maniacgeek sans aucun Shell, par exemple, /sbin/nologin.

[root@maniacgeek ~]# useradd -s /sbin/nologin maniacgeek

Et vous pouvez vérifier qu’il ne possède pas de Shell avec la commande

[root@maniacgeek ~]# tail -1 /etc/passwd
maniacgeek:x:1002:1002::/home/maniacgeek:/sbin/nologin

Créer un utilisateur Linux avec un Home personnalisé, un Shell par défaut et un commentaire personnalisé

 

La commande suivante crée un utilisateur sauron avec son répertoire Home dans /var/www/maniacgeek, le Shell par défaut /bin/bash et ajoute des informations supplémentaires sur l’utilisateur.

[root@maniacgeek ~]# useradd -m -d /var/www/sauron -s /bin/bash -c "Mec ultra cool" -U sauron

Dans cette commande, les options -m et -d créent un utilisateur avec un répertoire Home personnalisé tandis que l’option -c définit le Shell par défaut. Enfin, l’option -c ajoute des informations supplémentaires tandis que l’option -U crée un groupe avec le même nom que l’utilisateur.

Créer un utilisateur Linux avec son répertoire Home, un Shell, un commentaire, un UID et un GID personnalisés

 

Cette commande est similaire à la précédente. Nous définissons un Shell /bin/zsh et un UID et un GID personnalisés pour l’utilisateur frodon. L’option -u définit l’UID de l’utilisateur (1000) et c’est la même chose pour l’option -g concernant le GID (1000).

[root@maniacgeek ~]# useradd -m -d /var/www/frodon -s /bin/zsh -c "Hobbit Snob" -u 1000 -g 1000 frodon

Créer un utilisateur Linux avec un répertoire Home, sans aucun shell et un commentaire un UID personnalisés

 

Encore une variante des précédentes commandes, mais la seule différence est que nous désactivons le Shell pour l’utilisateur silvebarbe tout en lui fournissant une UID personnalisé 1019.

L’option -s permettant de définir le Shell, on le met sur /usr/sbin/nologin pour empêcher qu’il ne puisse se connecter au système.

[root@maniacgeek ~]# useradd -m -d /var/www/silvebarbe -s /usr/sbin/nologin -c "Arbre poète" -u 1019 silvebarbe

Ajouter un utilisateur Linux avec son répertoire Home, un shell, un commentaire et une ossature personnalisée ainsi qu’un UID

 

Le seul changement dans cette commande est que nous utilisons la commande -k pour créer une ossature personnalisée de répertoire (par exemple, /etc/custom.skell). Nous définissons aussi un Shell different avec l’option -s pour l’utilisateur monsieurmcgoo

[root@maniacgeek ~]# useradd -m -d /var/www/monsieurmcgoo -k /etc/custom.skell -s /bin/tcsh -c "Monsieur Cata" -u 1027 monsieurmcgoo

Crée un utilisateur Linux sans répertoire Home, Shell, groupe, ou commentaire

 

Cette dernière commande est très différente des autres, car on utilise l’option -M pour créer un utilisateur sans le répertoire Home et l’option -N dit au système de créer uniquement le nom d’utilisateur (sans le groupe). Enfin, l’option -r permet de dire que c’est un utilisateur système.

[root@maniacgeek ~]# useradd -M -N -r -s /bin/false -c "Geek Maniac" fake

Evidemment, on aura toute l’aide sur la commande useradd en tapant simplement la commande dans le terminal.

Traduit de l’article source

N'oubliez pas de voter pour cet article !
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading...

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller à la barre d’outils