Gestion des comptes des utilisateurs Unix

RETOUR

Commandes de consultation des informations de compte
  • id : Affichage des informations d'identité d'un utilisateur.

id.png (21663 octets)

id sur l'utilisateur en cours et sur root

  • groups : Affichage des groupes auxquels appartient un utilisateur.

groups.png (16892 octets)

groups sur l'utilisateur en cours et sur root

  • finger : Affichage des informations disponibles sur un utilisateur.

finger.png (24470 octets)

finger sur l'utilisateur en cours et sur root

Stockage des utilisateurs et des groupes d'utilisateurs

Utilisateurs référencés stockés dans le fichier /etc/passwd

Une ligne par utilisateur décrit par sept champs séparés par des ':' :
 - login (en clair),
 - mot de passe (crypté),
 - numéro d'utilisateur (UID),
 - numéro de groupe (GID),
 - description,
 - répertoire de base (home),
 - shell de connexion.

UID : Identificateur numérique généralement unique et supérieur à 100.
0: UID de root.
1 à 99: UID réservés aux services du système d'exploitation.
UID définissables arbitrairement en dehors de cette contrainte.
Chaque utilisateur appartient obligatoirement à un groupe dit "groupe principal" et est muni du GID de ce groupe. A l'installation du système d'exploitation tous les utilisateurs installés se voient placés dans un groupe spécifiquement créé pour eux qui porte le même nom qu'eux et le même numéro de GID que leur UID (mais c'est un numéro de groupe).

Désactivation d'un compte par placement d'une * à la place du mot de passe dans le fichier /etc/passwd.

Problème : Fichier /etc/passwd entièrement lisible par tous les utilisateurs y compris les mots de passe cryptés.
-> Informations en clair utilisables pour un décryptage accessibles à un hacker éventuel possèdant un compte.

Mise en place d'un système de masquage (shadow) avec stockage des mots de passe cryptés (avec d'autres informations) dans le fichier /etc/shadow non lisible par les utilisateurs banalisés.
Remplacement des mots de passe par des x dans le fichier /etc/passwd. Maintien des autres informations.

Dans le fichier /etc/shadow, une ligne par utilisateur décrit par neuf champs séparés par des ':' :
 - login (en clair),
 - mot de passe (crypté),
 - date de dernière modification du mot de passe (en jours depuis le 1er janvier 1970),
 - délai avant la prochaine modification possible après un changement de mot de passe (en jours),
 - délai avant l'obligation de changer de nouveau de mot de passe après un changement sinon expiration du compte (en jours),
 - délai d'avertissement avant une modification obligatoire,
 - délai avant désactivation après une expiration,
 - date de désactivation,
 - reservé.

Dans le fichier /etc/shadow, désactivation d'un compte par le placement d'un !! devant le mot de passe.

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
dhcp:x:101:101::/nonexistent:/bin/false
syslog:x:102:102::/home/syslog:/bin/false
klog:x:103:103::/home/klog:/bin/false
cupsys:x:100:106::/home/cupsys:/bin/false
messagebus:x:104:107::/var/run/dbus:/bin/false
haldaemon:x:108:108:Hardware abstraction layer,,,:/var/run/hal:/bin/false
hplip:x:105:7:HPLIP system user,,,:/var/run/hplip:/bin/false
nico:x:1000:1000:Nico,,,:/home/nico:/bin/bash

Exemple de fichier /etc/passwd avec utilisation de shadow
nico : Utilisateur banalisé créé à l'installation du système

root:$1$cJtWmhbX$1iCfb31CvckZiVDeae0Zx.:13383:0:99999:7:::
daemon:*:13383:0:99999:7:::
bin:*:13383:0:99999:7:::
sys:*:13383:0:99999:7:::
sync:*:13383:0:99999:7:::
games:*:13383:0:99999:7:::
man:*:13383:0:99999:7:::
lp:*:13383:0:99999:7:::
mail:*:13383:0:99999:7:::
news:*:13383:0:99999:7:::
uucp:*:13383:0:99999:7:::
proxy:*:13383:0:99999:7:::
www-data:*:13383:0:99999:7:::
backup:*:13383:0:99999:7:::
list:*:13383:0:99999:7:::
irc:*:13383:0:99999:7:::
gnats:*:13383:0:99999:7:::
nobody:*:13383:0:99999:7:::
dhcp:!:13383:0:99999:7:::
syslog:!:13383:0:99999:7:::
klog:!:13383:0:99999:7:::
cupsys:!:13383:0:99999:7:::
messagebus:!:13383:0:99999:7:::
haldaemon:!:13383:0:99999:7:::
hplip:!:13383:0:99999:7:::
nico:$1$tgS/4j6v$D9dP0cyqc6QydDOQDAiPm.:13383:0:99999:7:::

Fichier /etc/shadow correspondant
au fichier /etc/passwd précédent

Groupes référencés stockés dans le fichier /etc/group

Une ligne par groupe décrit par quatre champs séparés par des ':' :
 - nom du groupe,
 - mot de passe (crypté) (généralement il n'y en a pas),
 - numéro de groupe (GID),
 - liste des utilisateurs qui ont ce groupe en groupe secondaire (représentés par leurs noms séparés par des virgules).

En cas d'utilisation du masquage shadow, remplacement des mots de passe par un x et utilisation d'un fichier /etc/gshadow au même format que le fichier /etc/group mais non lisible par tous les utilisateurs.

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:nico
tty:x:5:
disk:x:6:
lp:x:7:cupsys
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:cupsys,nico
fax:x:21:
voice:x:22:
cdrom:x:24:haldaemon,nico
floppy:x:25:haldaemon,nico
tape:x:26:
sudo:x:27:
audio:x:29:nico
dip:x:30:nico
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:nico
sasl:x:45:
plugdev:x:46:haldaemon,nico
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
dhcp:x:101:
syslog:x:102:
klog:x:103:
crontab:x:104:
ssh:x:105:
lpadmin:x:106:nico
messagebus:x:107:
haldaemon:x:108:
slocate:x:109:
scanner:x:110:cupsys,nico
nico:x:1000:
admin:x:111:nico

Exemple de fichier /etc/group avec utilisation de shadow

root:*::
daemon:*::
bin:*::
sys:*::
adm:*::nico
tty:*::
disk:*::
lp:!::cupsys
mail:*::
news:*::
uucp:*::
man:*::
proxy:*::
kmem:*::
dialout:!::cupsys,nico
fax:*::
voice:*::
cdrom:!::haldaemon,nico
floppy:!::haldaemon,nico
tape:*::
sudo:*::
audio:*::nico
dip:*::nico
www-data:*::
backup:*::
operator:*::
list:*::
irc:*::
src:*::
gnats:*::
shadow:*::
utmp:*::
video:*::nico
sasl:*::
plugdev:!::haldaemon,nico
staff:*::
games:*::
users:*::
nogroup:*::
dhcp:x::
syslog:x::
klog:x::
crontab:x::
ssh:x::
lpadmin:x::nico
messagebus:x::
haldaemon:x::
slocate:x::
scanner:!::cupsys,nico
nico:!::
admin:!::nico

Fichier /etc/gshadow correspondant
au fichier /etc/group précédent

Gestion des utilisateurs

  - useradd : Création d'un utilisateur, du répertoire de base associé (avec autorisations) et copie des fichiers de configuration dans ce répertoire.
Compte créé sans mot de passe et non activé.
 - userdel : Suppression d'un utilisateur.
Répertoire de base non supprimé.
 - usermod : Modification des caractéristiques d'un utilisateur.

Travail direct possible sur les fichiers /etc/passwd et /etc/shadow.

 - pwck : Vérification de la cohérence des fichiers /etc/passwd et /etc/shadow.

Gestion des groupes

  - groupadd : Création d'un groupe.
 - groupdel : Suppression d'un groupe.
 - groupmod : Modification des caractéristiques d'un groupe.

Travail direct possible sur les fichiers /etc/group et /etc/gshadow.

 - grpck : Vérification de la cohérence des fichiers /etc/group et /etc/gshadow.

Gestion des mots de passe

  - passwd : Modification du mot de passe d'un utilisateur.

Exemple

capture1.png (17574 octets)

Création d'un groupe
Création d'un utilisateur en le plaçant dans le groupe
Affectation d'un mot de passe à l'utilisateur
(utilisation des paramètres optionels par défaut)

 - Ligne ajoutée au fichier /etc/passwd lors de la création de l'utilisateur fermi :
fermi:x:1001:1001::/home/fermi:/bin/sh
 - Ligne ajoutée au fichier /etc/shadow lors de la création de l'utilisateur fermi :
fermi:$1$OiUYxLOq$97N3L1zEHtnjalbwceUyl0:13384:0:99999:7:::
 - Ligne ajoutée au fichier /etc/group :
physiciens:x:1001:fermi
 - Ligne ajoutée au fichier /etc/gshadow :
physiciens:!::fermi

Informations générales

L'ID de root est 0.
C'est root qui choisit les ID (ou l'assistant utilisé si on utilise un assistant). Un ID ayant été utilisé peut être réutiliser. On ne doit pas avoir deux utilisateurs de mêmes ID. Il est possible de recréer un utilisateur ou un groupe que l'on aurait supprimé par mégarde en recréant un utilisateur ou un groupe de même ID.

RETOUR