Chapitre 2

publicité
Cours Systèmes d'exploitation, Dalila Souilem, ISITC, département informatique.
Chapitre II
Généralités sur UNIX
II.1 Présentation d'UNIX
A Historique
B La normalisation d'UNIX
C Les qualités du système UNIX
D Caractéristiques générales du noyau
II.2 Connexion, déconnexion et gestion des utilisateurs et des groupes
A Connexion
B Modification du mot de passe
C Gestion des utilisateurs et des groupes
D Les commandes unix
E Caractères génériques
1
Cours Systèmes d'exploitation, Dalila Souilem, ISITC, département informatique.
II.2- Connexion, déconnexion et gestion des utilisateurs et des groupes
On suppose ici, que l'utilisateur a déjà été enregistré sur le système et que donc, son identité
est présente dans des fichiers particuliers gérés par l'administrateur du système.
2.1- Procédure de connexion
2.1.1- Connexion logique
La connexion logique doit avoir lieu entre le terminal (écran + clavier) et l'ordinateur sur
lequel on veut travailler. Le terminal peut être aussi un autre ordinateur (stations UNIX, PCs,
Macintosh, etc.). Cette connexion dépend de la liaison matérielle entre le terminal et
l'ordinateur. Dans le cas le plus simple de la liaison directe, il suffit d'allumer le terminal.
2.1.2- Initialisation de la session de travail
C'est durant cette étape que l'utilisateur va devoir s'identifier auprès du système. Cette
identification a lieu de la façon suivante :
- affichage du message login: après lequel il faut rentrer son nom d'utilisateur
- affichage du message Password: après lequel il faut rentrer son mot de passe. Celuici n'est pas affiché pendant la frappe pour éviter bien sûr que quelqu'un d'autre puisse
l'apercevoir.
Puis, souvent, apparaît un message demandant de spécifier le type de terminal utilisé (ex :
vt100) et ceci de façon à ce que les éditeurs fonctionnent correctement ; si ce message n'est
pas affiché, un type de terminal est pris par défaut.
Après la connexion, différents messages en provenance de l'administration du système (mots
du jour, présence de courrier dans la boîte à lettres, etc.) sont affichés.
L'utilisateur est effectivement prêt à travailler quand il reçoit l'invite du système consistant en
un marqueur en début de ligne. Ce marqueur est variable selon les machines
($ , nom utilisateur@nom machine>,#, etc ...)
2.2- Choix d’un mot de passe
2.2.1- Changement de mot de passe
Le changement de mot de passe s'effectue avec la commande passwd (ou yppasswd).
L'utilisation de l'une ou l'autre commande dépend du type de configuration du système
d'enregistrement des utilisateurs d'un système UNIX.
Si ceux-ci sont les utilisateurs locaux d'une machine donnée, ils doivent utiliser la commande
passwd. Le changement de mot de passe s'effectue en entrant d'abord le mot de passe actuel
puis en entrant le nouveau mot de passe que l'on doit retaper pour confirmation.
2.2.2- Qualités d'un "bon" mot de passe
Des personnes peuvent essayer d'accéder de façon illégale à un système UNIX. Un des
moyens dont ils disposent est d'entrer sur un compte utilisateur en déterminant son mot de
passe. Pour cela, ils utilisent des chaînes de caractères appartenant à des dictionnaires ou
correspondant à des informations personnelles sur l'utilisateur (prénom, nom, numéro de
téléphone, etc.). Il est donc nécessaire que votre mot de passe respecte certaines règles de
sécurité, par exemple :
2
Cours Systèmes d'exploitation, Dalila Souilem, ISITC, département informatique.
- il doit posséder au moins 7 caractères et contenir au moins un chiffre et ceux-ci à l'intérieur
et non en début de mot de passe.
- il ne doit pas contenir des données relatives à votre identité comme votre nom d'utilisateur
ou une information livrée par la commande finger (voir plus loin) ;
- il ne doit pas contenir des répétitions de caractère ;
- etc ...
2.3- Procédure de déconnexion
Celle-ci dépend du type de session qui a été ouverte. Si un environnement graphique (tel que
celui créé par X Windows, l'environnement multi-fenêtrage) est en place, il existe
généralement un menu "logout" (ou "exit") qui permet de quitter cet environnement et ainsi de
terminer la session de travail. Parfois aussi, ce menu ne permet simplement que de quitter
l'environnement graphique. Il faut ensuite procéder à l'étape de déconnexion ci-dessous.
En l'absence d'un environnement graphique, une simple commande telle que logout ou exit,
entrée après l'invite du système, suffit pour terminer la session de travail.
2.4- Gestion des utilisateurs et des groupes
Le système, dès son installation, avant même la première connexion au système a créé des
utilisateurs 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 !
2.4.1-Les principales commandes pour la gestion des utilisateurs et des groupes
useradd, usermod, userdel
gestion des comptes utilisateur
groupadd, groupmod, groupdel gestion des groupes
passwd
changer le mot de passe d'un utilisateur
chfn, id, groups
utilitaires divers
2.4.2- Gestion des comptes
•
Créer un compte pour un nouvel utilisateur
3
Cours Systèmes d'exploitation, Dalila Souilem, ISITC, département informatique.
Cela signifie lui permettre d'être connu du poste local, s'y loguer, avoir un accès
complet sur son répertoire personnel.
•
Pour
créer
l'utilisateur
etudiant,
root
passe
la
commande
:
useradd etudiant .Ceci crée :
o le répertoire personnel /home/etudiant, portant par défaut le nom du
compte
o une nouvelle entrée dans les 2 fichiers fondamentaux /etc/passwd et /etc/group.
Remarque : Pour connaitre les options de useradd (indispensable pour gérer les comptes à
l'aide de scripts) voir complément.
•
Pour lui attribuer un mot de passe:
passwd etudiant
Saisir 2 fois le mot de passe
•
Supprimer le compte
userdel [-r] totox
d'un
utilisateur
(non
connecté),
au
hasard
totox.
L'option -r supprime aussi le répertoire 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'utilisateurs.
•
Modifier le compte de l'utilisateur toto
usermod [options] totox
Les options sont les mêmes que useradd
usermod -G stagiaire,root etudiant ajoute etudiant dans les 2 groupes stagiaire et root
(les groupes spécifiés doivent exister).
2.4.3 Gestion des groupes
•
Un groupe est, aussi pour Linux, 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.
4
Cours Systèmes d'exploitation, Dalila Souilem, ISITC, département informatique.
•
•
•
Chaque utilisateur doit faire partie au moins d'un groupe, son groupe primaire. Celuici 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 identifiant gid 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
•
•
•
Pour lister tous les groupes (primaire et secondaires) d'un utilisateur :
groups nom_user
Pour créer un nouveau groupe
groupadd nom_group
Supprimer un groupe
groupdel nom_group
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 utiliser Linuxconf : outil graphique pour la
gestion des comptes utilisateurs).
Complément :
Options de la commande 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
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 ,
5
Cours Systèmes d'exploitation, Dalila Souilem, ISITC, département informatique.
sans espace)
•
•
•
-s shell
par défaut, attribution du shell par
défaut bash
-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
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 par root.
Structure de /etc/passwd
Ce fichier comprend 7 champs, séparés par le symbole :
1. nom de connexion
2. ancienne place du mot de passe crypté
3. numéro d'utilisateur UID (identificateur de l’utilisateur), 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.
4. numéro de groupe GID (identificateur du groupe), dans lequel se trouve l'utilisateur par
défaut; le GID de root est 0, des groupes d'utilisateurs au delà de 500
5. nom complet, il peut être suivi d'une liste de renseignements personnels
6. répertoire personnel (c'est également le répertoire de connexion)
7. 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 « : »
1.
2.
3.
4.
nom du groupe
x pour remplacer un mot de passe non attribué maintenant
numéro de groupe, c’est-à-dire l'identifiant GID
la liste des membres du groupe
3- Les Commandes UNIX
6
Cours Systèmes d'exploitation, Dalila Souilem, ISITC, département informatique.
3.1- Interpréteur de commandes
L'utilisateur peut taper des commandes lorsque l'invite de commandes apparaît. Toute
commande entrée sera interprétée par l'interpréteur de commandes (ou shell). Le terme shell
veut dire coquille pour exprimer l'idée d'interface entre utilisateurs et système UNIX et a été
donné par opposition au noyau du système.
Il existe des dizaines d'interpréteurs de commandes sous UNIX mais les 2 principaux (qu'on
retrouve sur la plupart des systèmes) sont le Bourne-shell (sh) et le C-shell (csh).
Le choix de l'interpréteur activé à la connexion est fait à l'enregistrement de l'utilisateur dans
le système.
3.2- Syntaxe des commandes
Celle-ci est généralement la suivante :
nom_commande [options] [arguments]
• . le caractère séparateur entre les différents éléments de la commande est l’ESPACE ;
• . les options commencent habituellement par le caractère - (signe moins) suivi d'une
ou plusieurs lettres-clés
• . les arguments spécifient les objets (fichiers ou variables) sur lesquels la commande
va s'appliquer.
Note : les crochets autour des arguments et des options signifient que ceux-ci sont optionnels.
Exemple : liste de fichiers avec les commandes suivantes :
ls
ls -l (l comme long, donne tous les attributs des fichiers)
ls -la (a comme all, liste aussi les fichiers cachés dont les noms commencent par le
caractère.)
Exemple : visualisation d'un ou plusieurs fichiers :
cat fic1
cat fic1 fic2
À noter que tous les shells font la distinction entre les lettres minuscules et majuscules pour
les commandes et les noms de fichiers contrairement au MS-DOS.
3.3- Manuel des commandes
Si on veut de l'aide sur les règles d'utilisation ou encore sur les fonctionnalités d'une
commande, on peut utiliser l'aide en ligne grâce à la commande man (comme MANual pages)
de la façon suivante : man nom_commande
Exemple :
man ls
man man
Note : l'affichage des "manuel pages" se fait à l'aide de la commande more, afficheur page par
page. Pour faire avancer l'affichage, il suffit de taper la barre d'espace.
Si on ne connaît pas la syntaxe de la commande, il est possible de faire une recherche par
mot-clé dans le système de "manuel pages") à l'aide de la commande suivante :
man -k mot-clé
Exemple : man -k list ; man -k directories
3.4- Caractères génériques
7
Cours Systèmes d'exploitation, Dalila Souilem, ISITC, département informatique.
Certaines commandes acceptent plusieurs noms de fichiers en arguments aussi, il était
intéressant d'avoir des notations permettant de raccourcir l'écriture d'une telle liste. Ainsi, il
existe plusieurs caractères génériques qui, incorporés dans les noms de fichiers, ont la
signification suivante :
- le caractère ? qui peut remplacer n'importe quel caractère ;
- le caractère * qui peut remplacer n'importe quelle chaîne de caractères, y compris la chaîne
vide.
Exemple :
$ ls
fic fic1 fic2 fic3 fic33 mbox rep1 rep2 rep3
$ ls fic?
fic1 fic2 fic3
$ ls fic*
fic fic2 fic33 fic1 fic3
$ ls fic??
fic33
8
Téléchargement