Académique Documents
Professionnel Documents
Culture Documents
sur Linux
Généralités - notion d'utilisateurs
Les comptes utilisateur servent à beaucoup de choses sur les systèmes UNIX et
Linux :
- Ils permettent de distinguer les différents utilisateurs qui ont accès au système,
pour des raisons de sécurité. Chacun d'eux possède un compte personnel, auquel il
accède par un identifiant et un mot de passe secret.
- Ces utilisateurs peuvent définir des permissions d'accès à leurs données, afin
d'en autoriser ou d'en interdire l'exploitation par les autres.
En dehors des comptes personnels, il existe des utilisateurs qui ne sont pas
forcément des personnes physiques. Ces utilisateurs remplissent des fonctions
administratives. C'est le cas du compte root utilisé par l'administrateur pour
effectuer la maintenance par exemple. C'est aussi le cas des comptes en général
destinés à des démons qui doivent avoir accès à certains fichiers sous une
identification spécifique (le compte news par exemple permet de recevoir les news
Usenet en provenance d'un autre site).
Cette commande est surtout utilisée pour obtenir les privilèges d'administration
à partir d'une session d'utilisateur normal, c’est-à-dire, non privilégiée.
# visudo
3. Utilisateurs
Toute entité (personne physique ou programme particulier) devant interagir
avec un système UNIX est authentifiée sur cet ordinateur par un utilisateur ou
"user".
4. Utilisateurs : fichier /etc/passwd
On peut créer un utilisateur de plusieurs manières mais la finalité est toujours la
même : pour chaque utilisateur, une entrée doit être créée dans le
fichier /etc/passwd sous ce format :
account:passwd:UID:GID:GECOS:directory:shell
Par exemple, on ajoute un utilisateur "user1" :
echo
"user1:x:2000:2000:user1:/home/user1:/bin/bash" >>
/etc/passwd
Mais faut-il encore créer le groupe correspondant, vérifier la validité des UID et
GID, créer le répertoire utilisateurs, y donner les droits et y placer une
structure ...
Par exemple :
francois:$6$d/
uLirbD$s90XRAj6g14036jIuvYYQaSOSrcJKqiNNywIQplztkTlyIrySZE1o2zjF
vSobewvyORXFdZ7bGeF0U1OTPoOm.:16842:0:99999:7:::
# pwmake 128
Ib9AHK3boravZUSuNuffYPExunEn
7. Groupes
Un utilisateur UNIX appartient à un ou plusieurs groupes.
Les groupes servent à rassembler des utilisateurs afin de leur attribuer des
droits communs.
8. Fichiers /etc/group et /etc/gshadow
Les fichiers /etc/group et /etc/gshadow définissent les groupes.
Le fichier /etc/group comporte 4 champs séparés par ":".
1. Nom- du groupe
2. mot de passe du groupe (ou x si le fichier gshadow existe)
3. le GID
4. liste des membres séparés par une virgule
9. Appartenance à un groupe
On peut vérifier son identifiant et l’appartenance aux groupes via les
commandes id et groups :
$ id
uid=1000(francois) gid=1000(francois) groupes=1000(francois),10(wheel)
contexte=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
$ groups
francois wheel
/etc/default/useradd
Option Résumé
Remarques :
Un groupe sous Linux est un ensemble d'utilisateurs qui partagent les mêmes
fichiers 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 initial ou
primaire. Celui-ci est défini au moment de la création du compte, et par défaut
sous Linux Mandriva, 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 identifiant gid dans ce fichier.
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.
Supprimer le groupe .stagiaires :
groupdel stagiaires ( Le groupe est alors supprimé du fichier /etc/group).
Tout ce qui concerne la gestion et l'authentification des utilisateurs est inscrit dans
un seul fichier /etc/passwd
A- Structure de /etc/passwd
B- Structure de /etc/group
user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash
(2) En tant que root, exécutez la
commande /usr/sbin/newusers , à partir d' un
fichier utilisateur que vous venez de
créer user.txt importer des données, créer un
utilisateur :
# newusers < user.txt
# pwunconv
user001:pass
user002:pass
user003:pass
user004:pass
user005:pass
user006:pass
(5) Exécuter en tant que
root /usr/sbin/chpasswd .
Créer un mot de passe de l' utilisateur, chpasswd passera
par /usr/bin/passwd commande codé mots de passe
écrits /etc/passwdchamp de mot de passe.
# pwconv
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.
groupadd,
groupmod, Gestion des groupes
groupdel
Changer le mot de
passwd
passe d'un utilisateur
La personnalisation du shell
S'il veut un prompt du genre 'Bonjour#', il lui faut d'éditer le fichier. Toutes les
lignes concernant la variable PS1 doivent alors être précédées d'un dièze: #. Il
suffit alors d'ajouter la ligne PS1='Bonjour#'.
Il est vivement conseillé de laisser un blanc après le prompt pour une meilleure
lisibilité. Il est également possible d'utiliser des variables dans le prompt (pour
afficher par exemple l'heure ou le nom de la machine...) :
Blanc 1;37
Personnalisation du prompt
Le prompt est personnalisable directement dans le .bashrc.
Pour afficher le prompt d'un utilisateur en vert, avec la date, on peut y ajouter ceci:
Code BASH :
PS1="\# \[\e[0;36m\][\t]\[\e[0;m\] \[\e[0;32m\]\u@\h\[\e[0;m\]: \[\
e[1;35m\]\w\[\e[0;m\] \[\e[1;32m\] \\$\[\e[0;m\] "
Pour harmoniser les prompts des utilisateurs, on peut créer ce script pour choisir la couleur
en fonction de l'utilisateur (root ou non) :
Code BASH :
if [[ ${EUID} == 0 ]] ; then
#Prompt de root
else
#Prompt de l'utiliateur
fi