Pour se connecter au système un utilisateur doit être identifié.
Chaque utilisateur possède pour ce faire un UID.
Chaque utilisateur appartient au moins à un groupe (son groupe principal) et peut appartenir à des groupes secondaires.
La commande ‘id’ nous donne des infos :
$> id
uid=200(apache) gid=11(admin) groups=1(staff),80(oraexp),
$> #le user apache a l’UID 200 et appartient à 3 groupes
La commande ‘su’ permet de changer de UID et donc de user. Sans paramètre elle permet de passer ‘super utilisateur’ ou en d’autres termes de prendre l’UID de root.
$> #je suis apache
$> id
uid=200(apache) gid=11(admin) groups=1(staff),80(oraexp)
$> # et deviens DD
$> su dd
dd’s password : ****
$> # puis root !
$> su
root’s Password: ****
Chaque fichier a un user (son propriétaire ou créateur) et un group (auquel appartient le créateur).
C’est la base de la gestion des permissions.
Ainsi sur l’exemple suivant un ‘ls -l’ nous donne entre autres le nom du user propriétaire, suivi du nom du groupe et en dernière colonne le nom du fichier.
$> ls -l
drwxrwxrwx 2 informix informix 512 Dec 04 20:00 CHUNK_BM
drwxrwxrwx 2 informix informix 512 Dec 04 20:00 INFO
-rwxrwxrwx 1 root system 0 Dec 05 10:19 LMF-common
-rwxrwxrwx 1 mqm mqm 0 Dec 01 05:20 MQSeries.1077294
-rwxrwxrwx 1 mqm mqm 0 Dec 01 05:20 MQSeries.1089556
-rw-r–r– 1 oracle dba 2442 Dec 01 01:04 connexions.lst
Les caractérisques des utilisateurs sont stockés dans des fichiers de /etc
- /etc/passwd : infos utilisateurs (accessible à tous en lecture)
- /etc/group : infos sur les groupes
- /etc/shadow : mots de passe cryptés (accessible en lecture/écriture seulement par root )
remarque : ces fichiers ne doivent pas être modifiés manuellement. On utilisera des lignes de commandes spéciales pour gérer les utilisateurs et les groupes, ou si possible une interface graphique : MENU systeme /Administartion / Users and Groups sous GNOME par exemple.
Format de /etc/passwd
C’est un fichier texte, à champs de longueur variable, séparés par des ‘:’
Il a la forme suivante :
nom_user : x : UID : GID : détails_user : rep_de_login : shell_par_defaut
x : correspond sur les anciennes versions au mot de passe, mais n’est plus stocké ici.
exemple de contenu :
$> more /etc/passwd
dd:x:1001:1001:,,,:/home/dd:/bin/bash
toto:x:1002:1002::/home/toto:/bin/bash
titi:x:1003:1003::/home/titi:/bin/sh
Quelques commandes pour gérer utilisateurs et groupe
useradd nom_user
permet de rajouter un utilisateur sur la machine, ou d’ajouter un utilisateur existant à un groupe (avec les valeurs par défaut)
useradd -D
affiche les caractéristiques par défaut d’un utilisateur
adduser nom_user
commande intéractive d’ajout d’utilisateur
groupadd nom_groupe
ajoute un groupe
usermod
modifie un utilisateur existant
userdel [options] nom_user
supprime un utilisateur
passwd
pour changer son mot de passe
exemples :
$> groupadd developeurs
$> grep developeurs /etc/group
developeurs:x:1124:
$> useradd -G developeurs dd
$> passwd dd
Changing password for “dd”
dd’s Old password: …
$> useradd -D
GROUP=100
HOME=/home
INACTIVE=1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
remarque : le répertoire SKEL contient les fichiers (cachés) à copier dans le compte initial (voir ls -al pour + d’infos)