GNU/Linux >> Tutoriels Linux >  >> Linux

Guide du débutant pour l'administration des utilisateurs et des groupes sous Linux

Chaque utilisateur sous Linux a un ID utilisateur unique (UID ), qui est un nombre entier ordinaire, et un nom d'utilisateur associé. Les utilisateurs se connectent en utilisant leurs noms d'utilisateur, mais le système utilise les UID associés. Chaque compte utilisateur dispose également d'un répertoire personnel et d'un shell de connexion. Lorsque les utilisateurs se connectent, ils sont placés dans leur répertoire personnel et leur shell de connexion s'exécute. Toutes ces informations de compte utilisateur sont stockées dans /etc/passwd fichier.

Chaque utilisateur appartient également à un ou plusieurs groupes. Différents utilisateurs peuvent être affectés au même groupe. L'accès peut être donné à un groupe et tous les membres du groupe se voient accorder les mêmes privilèges d'accès. Chaque compte de groupe sous Linux a un identifiant de groupe unique (GID ) et un nom de groupe associé. Les informations de groupe sont stockées dans /etc/group fichier.

RedHat Linux utilise un schéma de groupe privé d'utilisateurs (UPG) . Lorsqu'un nouveau compte d'utilisateur est ajouté, un nouveau groupe privé d'utilisateurs est également créé. Le groupe privé de l'utilisateur porte le même nom que l'utilisateur et le nouvel utilisateur est le seul membre de ce groupe.

Les utilisateurs et les groupes utilisent des mots de passe masqués. Les mots de passe sont hachés et stockés dans différents fichiers, /etc/shadow pour les utilisateurs et /etc/gshadow pour les groupes. La sécurité s'améliore en stockant les mots de passe hachés dans des fichiers « fantômes », car ces fichiers ne sont lisibles que par l'utilisateur root. L'utilisation de mots de passe cachés fournit également des paramètres de vieillissement du mot de passe et permet d'appliquer des politiques de sécurité à l'aide du fichier /etc/login.defs. Seul l'utilisateur racine peut ajouter, modifier ou supprimer des comptes d'utilisateurs et de groupes.

Fichiers de configuration des utilisateurs et des groupes

/etc/passwd

Lorsqu'un nouvel utilisateur est ajouté, les informations sont stockées sur une seule ligne séparée par deux-points dans /etc/passwd. Voici un exemple d'entrée dans ce fichier :

# tail -1 /etc/passwd
test:x:1001:1001:test user:/home/test:/bin/bash

Ce qui suit décrit cette entrée :

Champ Description
tester Nom d'utilisateur
x Indique que des mots de passe masqués sont utilisés
1001 UID, ceux-ci commencent par 1000 et s'incrémentent de 1 pour chaque utilisateur nouvellement ajouté. Les UID inférieurs à 1 000 sont réservés à l'utilisation du système.
1001 GID du groupe principal de l'utilisateur. Ceux-ci commencent par 1000 et s'incrémentent de 1 pour chaque nouveau groupe. Les utilisateurs peuvent appartenir à plusieurs groupes.
utilisateur test Informations GECOS (General Electric Comprehensive Operating System), utilisées uniquement à des fins d'information telles que le nom complet
/home/test Répertoire d'accueil de cet utilisateur
/bin/bash Shell par défaut pour cet utilisateur

/etc/ombre

Avec les mots de passe shadow, une nouvelle entrée est automatiquement ajoutée à /etc/shadow lorsqu'un nouvel utilisateur est créé. Ce fichier ne peut être consulté que par root. Voici un exemple d'entrée dans ce fichier :

# tail -1 /etc/shadow
test:$6$XBCDBQ...:17610:0:99999:7:::

Ce qui suit décrit cette entrée :

Champ Description
tester Nom d'utilisateur
6$$XBCDBQ… Valeur du mot de passe haché (valeur partielle affichée). Le mot de passe en clair lui-même n'est pas stocké sur le disque. Un algorithme crée une chaîne unique à partir d'un mot de passe.
17610 Nombre de jours depuis le changement de mot de passe (compté en jours depuis le 1er janvier 1970).
0 Nombre de jours qui doivent s'écouler avant que le mot de passe ne doive être changé par l'utilisateur.
99999 Nombre maximum de jours depuis la modification du mot de passe pendant lesquels le mot de passe peut être utilisé. Après ce nombre de jours, le mot de passe doit être modifié par l'utilisateur.
7 Nombre de jours avant la date d'expiration pendant lesquels l'utilisateur est averti de la politique de changement de mot de passe en attente. Si le mot de passe n'est pas modifié après ce nombre de jours, le compte utilisateur est verrouillé.

Le champ suivant est vide mais est utilisé pour stocker la dernière date à laquelle le compte est verrouillé (compté en jours depuis le 1er janvier 1970). Le dernier champ est également vide mais n'est pas utilisé.

/etc/groupe

Étant donné qu'Oracle Linux utilise un schéma UPG, une nouvelle entrée est automatiquement créée dans /etc/group lorsqu'un nouvel utilisateur est ajouté. Le nom du groupe est le même que le nom d'utilisateur. Voici un exemple d'entrée dans ce fichier :

# tail -1 /etc/group
test:x:1000:test

Ce qui suit décrit cette entrée :

Champ Description
tester Nom du groupe
x Indique que des mots de passe masqués sont utilisés
1 000 GID
tester Liste des utilisateurs membres du groupe

Chaque groupe peut avoir plusieurs utilisateurs. Les utilisateurs peuvent également appartenir à plusieurs groupes. Le GID stocké dans l'entrée de l'utilisateur dans /etc/passwd est le groupe principal de l'utilisateur.

/etc/gshadow

Les mots de passe de groupe hachés sont stockés dans ce fichier. Cependant, les mots de passe de groupe sont rarement utilisés. Voici un exemple d'entrée dans ce fichier :

# tail -1 /etc/gshadow 
test:!!::test

Ce qui suit décrit cette entrée :

Champ Description
tester Nom du groupe
x Mot de passe haché. La !! Indique que le compte est verrouillé.
oracle Liste des utilisateurs membres du groupe

Les deux derniers champs servent à désigner les administrateurs et les membres.

Ajouter un compte utilisateur

useradd

Utilisez la commande useradd pour ajouter un compte utilisateur. La syntaxe est :

# useradd [options] user_name

Lors de la création d'un nouvel utilisateur sans aucune option, les paramètres par défaut sont appliqués. Exemple :

# useradd john
# tail -1 /etc/passwd
john:x:501:501::/home/john:/bin/bash

Également par défaut, useradd crée un compte utilisateur verrouillé. Pour déverrouiller le compte et attribuer un mot de passe, exécutez la commande passwd nom_utilisateur en tant qu'utilisateur root. Exemple :

# passwd john

La commande passwd user_name vous demande un nouveau mot de passe. Selon la complexité du mot de passe, vous pouvez être averti que le mot de passe est mauvais (trop court ou trop simple). Saisissez à nouveau le même mot de passe pour continuer et déverrouiller le compte utilisateur. La même commande passwd est utilisée pour changer un mot de passe. L'utilisateur root peut toujours modifier le mot de passe d'un utilisateur. Les utilisateurs sont invités à saisir d'abord le mot de passe actuel.

Paramètres par défaut

Les paramètres par défaut d'un nouvel utilisateur peuvent être affichés et modifiés à l'aide de l'option -D. Exemple :

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

Le INACTIF La directive définit le nombre de jours après l'expiration d'un mot de passe jusqu'à ce que le compte soit verrouillé. Une valeur de 0 verrouille le compte dès que le mot de passe expire. Une valeur de -1 désactive la fonctionnalité. Contenu du SKEL (/etc/skel par défaut) sont copiés dans le répertoire personnel d'un nouvel utilisateur lors de la création du compte utilisateur. Les paramètres par défaut sont stockés dans /etc/default/useradd . Les options suivantes, utilisées avec –D, modifient les valeurs par défaut de la commande useradd :

  • -b default_home  :Le préfixe de chemin initial pour le répertoire personnel d'un nouvel utilisateur
  • -e default_expire_date :La date à laquelle le compte utilisateur est désactivé
  • -f default_inactive  :Le nombre de jours après l'expiration d'un mot de passe avant que le compte ne soit verrouillé
  • -g default_group  :Le nom ou l'ID du groupe initial d'un nouvel utilisateur
  • -s default_shell :Le shell de connexion du nouvel utilisateur

Par exemple, pour remplacer le shell de connexion d'un nouvel utilisateur par le shell Bourne, saisissez ce qui suit :

# useradd –D –s /bin/sh user_name

Options d'ajout d'utilisateur

Plusieurs options sont disponibles pour la commande useradd pour remplacer les paramètres par défaut. Voici quelques-unes des options les plus couramment utilisées :

  • -c commentaire :Les informations GECOS du nouvel utilisateur, telles que le nom complet
  • -d home_dir  :Le préfixe de chemin initial pour le répertoire personnel d'un nouvel utilisateur
  • -e expire_date :La date (format AAAA-MM-JJ) à laquelle le compte utilisateur est désactivé
  • -g groupe_initial :Le nom de groupe ou le numéro du groupe de connexion initial de l'utilisateur. Le nom du groupe doit exister. Un numéro de groupe doit faire référence à un groupe déjà existant.
  • -Groupe G :une liste de groupes secondaires dont l'utilisateur est également membre. Chaque groupe est séparé du suivant par une virgule, sans espace intermédiaire.
  • -p passwd  :Définissez le mot de passe du nouvel utilisateur.
  • -s shell :Le nom du shell de connexion de l'utilisateur

Par exemple, pour créer un nouveau nom d'utilisateur "john", inclure le nom de l'utilisateur et remplacer le shell de connexion par le shell C, saisissez ce qui suit :

# useradd –c "John Smith" –s /bin/csh john

Nologin Shell

Lorsque vous ajoutez un nouveau compte d'utilisateur, l'utilisateur bénéficie par défaut d'un accès au shell. Vous pouvez créer un compte utilisateur avec le shell nologin dans le but d'exécuter un service tel que SMTP, FTP ou d'exécuter un serveur Web, par exemple. Un utilisateur sans shell de connexion ne peut pas se connecter à un système et, par conséquent, ne peut exécuter aucune commande de manière interactive sur le système. Cependant, les processus peuvent s'exécuter sous cet utilisateur.

La connexion en tant qu'utilisateur avec un shell nologin est poliment refusée et un message s'affiche indiquant que le compte n'est pas disponible. Si le fichier /etc/nologin.txt existe, nologin affiche le contenu du fichier plutôt que le message par défaut. Pour créer un utilisateur nologin, assurez-vous d'abord que nologin existe dans /etc/shells fichier :

# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash

Pour ajouter un nouvel utilisateur appelé test sans accès au shell :

# useradd -s /sbin/nologin test

Tentative de connexion alors que le test utilisateur affiche :

# su – test
This account is currently not available.

Modifier ou supprimer des comptes d'utilisateurs

usermod

Utilisez la commande usermod pour modifier un compte utilisateur existant. La syntaxe est :

# usermod [options] user_name

L'une des utilisations les plus courantes de la commande usermod consiste à ajouter un utilisateur à un autre groupe (secondaire). Utilisez le –a et –G options suivies d'une liste séparée par des virgules des groupes secondaires auxquels ajouter l'utilisateur. L'exemple suivant répertorie le contenu de /etc/group avant et après la modification d'un utilisateur et son ajout à un groupe secondaire :

# grep 1017 /etc/group 
students:x:1017:
# usermod –aG 1017 mary 
# grep 1017 /etc/group students:x:1017:mary

userdel

Utilisez la commande userdel pour supprimer un compte utilisateur. Exemple :

# userdel john

Administration du compte de groupe

groupadd

Utilisez la commande groupadd pour ajouter un compte de groupe. La syntaxe est :

# groupadd [options] group_name

groupmod

Utilisez la commande groupmod pour modifier un compte de groupe. La syntaxe est :

# groupmod [options] group_name

groupel

Utilisez la commande groupdel pour supprimer un compte de groupe. La syntaxe est :

# groupdel group_name

Vous pouvez supprimer des groupes même s'il y a des membres dans le groupe. Vous ne pouvez pas supprimer le groupe principal d'un utilisateur existant. Vous devez supprimer l'utilisateur avant de supprimer le groupe.

gpasswd

Utilisez la commande gpasswd pour administrer /etc/group et /etc/gshadow. Chaque groupe peut avoir des administrateurs, des membres et un mot de passe. La syntaxe est :

# gpasswd [options] group_name

groupes

La commande groups affiche les groupes auxquels appartient un utilisateur. L'exemple suivant illustre que l'utilisateur oracle appartient à deux groupes, oracle (groupe principal) et étudiants (groupe secondaire) :

$ grep oracle /etc/passwd
oracle:x:1000:1000:Oracle Student:/home/oracle/bin/bash
$ grep oracle /etc/group
oracle:x:1000: students:x:1056:student1,student2,oracle

La commande groups (connecté en tant qu'oracle) vérifie ces appartenances à des groupes.

$ whoami
oracle
$ groups 
oracle students

nouveaugroupe

La commande newgrp exécute un nouveau shell et modifie l'identification du groupe réel d'un utilisateur. L'exemple suivant illustre l'ID de groupe avant et après l'exécution de la commande. Il illustre également qu'un nouveau shell est exécuté.

$ id
uid=1000(oracle) gid=1000(oracle)
groups=1000(oracle),1066(students)... 

Notez que le gid est égal à 1000 (oracle).

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash 
20411 pts/0 00:00:00 ps
$ newgrp students
$ id
uid=1000(oracle) gid=1066(students)
groups=1000(oracle),1066(students)...

Notez que le gid est maintenant égal à 1066(students). Notez également qu'un nouveau shell a été exécuté :

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash
20464 pts/0 00:00:00 bash
20486 pts/0 00:00:00 ps

La commande newgrp ne reconnaît pas les numéros d'identification de groupe et vous ne pouvez remplacer votre vrai nom de groupe que par un groupe dont vous êtes membre. L'exécution de la commande sans argument définit l'identification réelle du groupe sur le groupe principal de l'utilisateur.

Configuration du mot de passe

Le vieillissement du mot de passe oblige les utilisateurs à changer leur mot de passe périodiquement. Utilisez la commande chage pour configurer l'expiration du mot de passe. La syntaxe est :

# chage [options] user_name

Entrez la commande chage, suivie d'un nom d'utilisateur, pour afficher les valeurs de vieillissement de mot de passe existantes et apporter des modifications. Par exemple, pour afficher et modifier les valeurs de l'utilisateur john, saisissez (en tant qu'utilisateur root) :

# chage john
Changing the aging information for john
Enter the new value, or press ENTER for the default

	Minimum Password Age [0]: 
	Maximum Password Age [99999]: 
	Last Password Change (YYYY-MM-DD) [2018-03-24]: 
	Password Expiration Warning [7]: 
	Password Inactive [-1]: 
	Account Expiration Date (YYYY-MM-DD) [-1]: 

Les informations de vieillissement du mot de passe sont stockées dans le fichier /etc/shadow. Pour afficher l'entrée de l'utilisateur john avant d'apporter des modifications :

# grep john /etc/shadow
john:$6$fJB4dWkt$...:17614:0:99999:7:::

Changer la valeur d'âge minimum du mot de passe à 14 et la valeur d'âge maximum du mot de passe à 30 signifie qu'en 14 jours, l'utilisateur a 30 jours pour changer son mot de passe. La nouvelle entrée apparaît comme :

# grep john /etc/shadow
john:$6$fJB4dWkt$...:17614:14:30:7:::

Sur la base de ces informations, l'utilisateur est averti de changer son mot de passe sept jours avant la date d'expiration du mot de passe. La directive INACTIVE est utilisée pour définir le nombre de jours d'inactivité après l'expiration d'un mot de passe avant que le compte utilisateur ne soit verrouillé. Définir INACTIVE sur -1 désactive cette fonctionnalité.

Options de changement

Un certain nombre d'options sont disponibles pour la commande chage. Pour répertorier les informations d'ancienneté :

# chage -l john
Last password change					: Mar 24, 2018
Password expires					: never
Password inactive					: never
Account expires						: never
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

Pour forcer un utilisateur à définir un nouveau mot de passe immédiatement (forcer l'expiration immédiate), définissez la valeur du dernier changement de mot de passe sur 0. Exemple :

# chage –d 0 john

Une fois connecté, l'utilisateur est invité à modifier son mot de passe.

configuration d'authentification

L'algorithme de hachage du mot de passe utilisateur Linux est également configurable. Utilisez la commande authconfig pour déterminer l'algorithme actuellement utilisé ou pour le définir sur quelque chose de différent. Pour déterminer l'algorithme actuel :

# authconfig --test | grep hashing
    password hashing algorithm is sha512

Pour changer l'algorithme, utilisez le –passalgo option avec l'un des paramètres suivants :descrypt , bigcrypt , md5 , sha256 , ou sha512 , suivi de –mise à jour option. Par exemple, pour changer l'algorithme en MD5 :

# authconfig --passalgo=md5 --update
CentOS / RHEL :Gestion du vieillissement des mots de passe pour les utilisateurs à l'aide de chage (avec exemples pratiques)
Comprendre le fichier /etc/login.defs


Linux
  1. 10 tutoriels de commande Linux pour débutants et experts

  2. Comment ajouter un utilisateur à un groupe sous Linux

  3. Comment créer et supprimer un groupe d'utilisateurs sous Linux

  4. Gérer les groupes d'utilisateurs Linux

  5. Comment (correctement) changer l'UID et le GID d'un utilisateur/groupe sous Linux

Un guide pour débutants sur la gestion des utilisateurs sur Ubuntu Desktop et Server

Guide complet d'administration des utilisateurs sous Linux

Configuration et guide du chargeur de démarrage LILO Linux

Comment ajouter un utilisateur à un groupe sous Linux

Guide du débutant sur la gestion des utilisateurs MySQL

Comment ajouter un utilisateur à un groupe Linux