Qui est utilisateur ?
Le système, dès son installation, avant même la première connexion au système a créé des users système.Un utilisateur n'est donc pas uniquement une personne physique, le système a besoin d'utilisateurs pour sa gestion interne, notamment comme propriétaire des divers processus.
La commande
ps aux | less
montre qu'avant toute connexion d'utilisateur humain (repérée par les lignes login --user
), root
a lancé init
, et la plupart des services, crond, inetd, lpd, smbd, ...
, avant de lancer les connexions utilisateurs dans les consoles, y compris éventuellement la sienne ! Les principales commandes
useradd, usermod, userdel | gestion des comptes utilisateur |
groupadd, groupmod, groupdel | gestion des groupes |
pwck, grpck | vérification des fichiers |
passwd | changer le mot de passe d'un utilisateur |
chfn, id, groups, finger | utilitaires divers |
Gestion des comptes
Créer un compte pour un nouvel utilisateur
Cela signifie lui permettre d'être connu du poste local, s'y loguer, avoir un accès complet sur son rép. personnel.
Mais aussi dans une configuration réseau, de pouvoir se connecter à son compte par telnet et ftp, et de pouvoir bénéficier de services réseau de partage distant (sous Linux par NFS et sous Windows 9x par SMB).- Pour créer l'utilisateur
stagex
,root
passe la commande :
useradd stagex
Ceci crée :- le répertoire personnel /home/stagex, portant par défaut le nom du compte
- une nouvelle entrée dans les 2 fichiers fondamentaux
/etc/passwd
et/etc/group
. - Pour connaitre les options de
useradd
(indispensable pour gérer les comptes à l'aide de scripts)
- Pour lui attribuer le mot de passe :
passwd stagex
saisir 2 foisstgx
- Supprimer le compte d'un utilisateur (non connecté), au hasard ..
totox
.
userdel [-r] totox
L'option -r supprime aussi le rép. personnel et les fichiers de l'utilisateur
La commande supprime toute trace de l'utilisateur dans le fichier de configuration :/etc/passwd
y compris dans les groupes d'utiliseurs. - Modifier le compte de l'utilisateur toto
usermod [options] totox
Les options sont les mêmes queuseradd
usermod -G stagiaire,prof stagex ajoutestagex
dans les 2 groupes stagiaire et profs (qui doivent exister)
Manipulations
Sous l'identité de
root
- Créer quelques utilisateurs
stagey
ettotox
- Effectuer des vérifications : possibilité immédiate de se loguer sous ces comptes, création de leur rép. personnel dans
/home
. - Essayer de créer un compte déjà existant.
- Supprimer sans regret le compte de
totox
. Son rép. personnel a t-il été supprimé ?
Remarques
- Attention : si
root
passe la commandepasswd
il s'apprête à redéfinir son propre mot de passe ! - Un utilisateur quelconque ne peut pas créer de compte, même s'il a le privilège de faire partie du groupe
root
. A tester ! - Par contre, il peut modifier lui-même son mot de passe.
- Voir les diverses options avec useradd -h
- Pour une gestion sous interface graphique, voir le chapitre sur le nouvel outil linuxconf
- Attention ! Le compte créé permet à l'utilisateur d'accéder au système de fichier Linux (avec des droits que nous verrons). Pour pouvoir se connecter au réseau SAMBA, à partir d'une station distante Windows9x, il faut créer un compte Samba avec l'utilitaire
smbpasswd
(voir le chapitre serveur Samba).
A noter quelinuxconf
semble créer automatiquement les comptes Linux et Samba conjointement (voir plus loin).
Les groupes
- Un groupe est, aussi pour Linux, un ensemble d'utilisateurs qui partagent les mêmes fichers et répertoires. Nous verrons que les fichiers accordent des droits d'accès réglables à ces groupes.
- Chaque utilisateur doit faire partie au moins d'un groupe, son groupe primaire. Celui-ci est défini au moment de la création du compte, et par défaut, l'utilisateur appartient à un nouveau groupe créé, portant son nom.
- Ainsi, dans
/etc/passwd
chaque utilisateur possède un groupe par défaut, précisé par son identifiantgid
dans ce fichier. - L'appartenance au groupe primaire n'étant pas exclusive, tout utilisateur peut faire partie de plusieurs autres groupes, appelés ses groupes secondaires.
Mais le rôle joué par le groupe primaire demeure prépondérant, comme nous le verrons dans le système des permissions des fichiers. - Pour lister tous les groupes (primaire et secondaires) d'un utilisateur :
groups stagex - Pour créer un nouveau groupe
groupadd stagiaire - Supprimer un groupe, au hasard .. encore
totox
.
groupdel totox
Le groupe est supprimé du fichier/etc/group
. - Pour ajouter un utilisateur à un groupe
Le plus simple est d'éditer le fichier/etc/group
et d'ajouter une liste d'utilisateurs (séparés par des virgules) sur la ligne du groupe (ou utiliserLinuxconf
).
Manipulations
Il s'agit de créer un groupe nommé stagiaire dont les membres sont les comptes
stagex
.On donnera ensuite à ce groupe des droits complets sur un répertoire partagé.
Comme
root
: - créer le groupe
stagiaire
:
groupadd stagiaire - ajouter quelques comptes
stagex
dans ce groupe - vérifier le résultat avec la commande
groups
Visite des coulisses
- Tout ce qui concerne la gestion et l'authentification des utilisateurs est inscrit dans un seul fichier /etc/passwd
- La gestion des groupes est assurée par /etc/group
- Les mots de passe cryptés sont maintenant placés dans
/etc/shadow
, par sécurité lisible seulement parroot
.
Structure de /etc/passwd
Ce fichier comprend 7 champs, séparés par le symbole : - nom de connexion
- ancienne place du mot de passe crypté
- numéro d'utilisateur uid, sa valeur est le véritable identifiant pour le système Linux; l'uid de
root
est 0, le système attribut conventionnellement un uid à partir de 500 aux comptes créés. - numéro de groupe gid, dans lequel se touve l'utilisateur par défaut; le
gid
deroot
est 0, des groupes d'utilisateurs au delà de 500 - nom complet, il peut être suivi d'une liste de renseignements personnels (cf chfn)
- rép. personnel (c'est également le rép. de connexion)
- shell, interprétateur de commandes (par défaut /bin/bash)
Structure de /etc/group
Ce fichier comprend 4 champs, séparés par le symbole : - nom du groupe
- x pour remplacer un mot de passe non attribué maintenant
- numéro de groupe, c-à-d l'identifiant gid
- la liste des membres du groupe
Manipulations
Editer ces fichiers (utiliser l'utilitaire mc, sélectionner et éditer avec F3)
Examiner les lignes correspondant aux comptes créés : où se trouvent les rép. personnels ? quel est leur groupe par défaut ?
Outils de gestion des comptes
Linuxconf
Se connecter commeroot
et lancer linuxconf
en ligne de commande (on pourrait utiliser linuxconf
sous X-KDE
)Section Comptes utilisateurs
- Sélectionner un compte et examiner sa définition actuelle sous l'interface de Linuxconf
Comparer avec son entrée dans/etc/passwd
- Ajouter un nouveau compte (
stagey/stgy
) en donnant seulement les nom de login et nom complet
A la validation, on observe queLinuxconf
exécute 2 commandesuseradd
etchage
. Puis on est averti que le mot de passe a bien été enregistré dans passwd et smbpasswd - Pour connaitre le rôle de
chage
, consulter le manuel et le fichier/etc/shadow
Créer maintenant un autre compte (toto) en précisant le groupe primaire (zig), et des groupes secondaires (stagiaire). Examiner la syntaxe des 2 lignes de commandes exécutées ( /usr/sbin/useradd et /usr/bin/chage - Si le rep. de base n'est pas spécifié, par défaut création et attribution de
/home/stagex
- On peut tout de suite placer l'utilisateur dans une liste de groupes (sans virgule)
Kuser
Compléments
- La structure d'une ligne de
/etc/passwd
et de/etc/group
login:x:uid:gid:commentaires:home:shell
groupe:x:gid:liste-groupes-secondaires - Options de la commande useradd (pour détails cf
man useradd
)
Nous avons jusqu'ici utilisé cette commande avec ses options par défaut.
La maitrise de cette commande est indispensable pour écrire des scripts de génération automatique de comptes.
Syntaxe : useradd [options] nom_login
Exemple : useradd toto -u 1200 -p moi -g 520 -G groupes -s /bin/bash
Options :-u uid pour fixer l'identifiant uid -g groupe-primaire -G liste fixe l'appartenance de l'utilisateur à une liste
de groupes secondaires (séparateur , sans espace)-s shell par défaut, attribution du shell par défaut bash -c commentaire -d rep. personnel par défaut dans le répertoire /home -e date-expiration fixe la date d'expiration du compte (format MM/JJ/AA) -m pour créer le répertoire personnel -k rep-skel recopie le contenu de rep-skel dans le rép. personnel, par défaut /etc/skel
- La recopie du répertoire
/etc/skel
est très important pour l'administrateur, car il lui permet de configurer de façon uniforme les sessions de travail des utilisateurs.
C'est ainsi que tous les utilisateurs qui passe en mode graphique KDE hérite du même bureau.- Dans une console lancer l'utilitaire
mc
et parcourir le répertoire/etc/skel
. Peut-on "deviner" la fonction de ces fichiers ? - Dans une autre console, se connecter comme
stagex
puis lancerX-KDE
. - Effectuer quelques travaux, comme modifier le bureau, par exemple en ajoutant un lanceur, puis lancer une session WEB avec Nestcape, aller visiter quelques pages.
- Dans la première console, avec
mc
, comparer d'un côté le contenu du répertoire "modèle"/etc/skel
, et de l'autre le contenu actuel de/home/stagex
, en particulier :- les fichiers de configuration des lanceurs
.kdelnk
- le contenu de
.netscape
: fichier bookmarks.html, le stockage dans le cache ...
- les fichiers de configuration des lanceurs
- Ouvrir quelques fichiers
/home/stagex/Desktop/xxxx.kdelnk
, y repérer les noms des images et l'exécutable lancé par le clic.
- Dans une console lancer l'utilitaire
- Pour examiner les valeurs par défaut appliquées par
useradd
:
commande useradd -D ou éditer /etc/default/useraddGROUP=100 identifiant du groupe primaire
HOME=/home racine des rép. personnels
INACTIVE=-1 (nb de jours avant destruction du compte
EXPIRE= nb de jours avant expiration du mot de passe
SHELL=/bin/bash shell de connexion attribué au compte
SKEL=/etc/skel fichiers recopiés par défaut dans chaque rép. personnel - La commande
passwd
Elle est chargée du cryptage du mot de passe dans/etc/shadow
Syntaxe :passwd [option] nom-login
Options- --stdin, la commande abandonne son caractère interactif habituel et examine son entrée standard pour s'en servir comme mot de passe.
Très utile dans un script :echo mot | passwd --stdin
(attention tout caractère est significatif, y compris les " ") - -d , pour supprimer le mot de passe, l'utilisateur pourra se connecter sans !
- -l , pour verrouiller le compte et empêcher sa connexion.
- -u , pour déverrouiller.
- --stdin, la commande abandonne son caractère interactif habituel et examine son entrée standard pour s'en servir comme mot de passe.
- Connaitre l'
uid
et legid
de l'utilisateur courantCommande id
uid=501(stage1) gid=501(stage1) groups=501(stage1), 504(stagiaire) - Pour décrire un utilisateur : chfn
Cette commande permet d'indiquer dans le champ numéro 5 du fichier/etc/passwd
différentes informations sur un utilisateur, son nom complet, son bureau, ses numeros de téléphone (séparées par des virgules). - Cryptage des mots de passe
Pour des questions de sécurité, les mots de passe cryptés ne sont stockés dans/etc/passwd
qui doit etre accessible en lecture par tous
La commande/usr/sbin/pwconv
est chargée de transférer les mots de passes cryptés, dans/etc/shadow
. Pour plus de détails , consulterman pwconv