Vous êtes sur la page 1sur 7

nale d’

Ecole Nationale d’Electronique et des Télécommunications


munications de Sfax
Module : Système d’exploitation
Auditoire : 1ING II
Manuel du TP4:: Droits d’accès et administration des utilisateurs et des groupes

La sécurité et l’accès aux données sont des tâches primordiales assurées par un système
d’exploitation. Le système attribue à chaque fichier des droits qui lui sont propres et définissent qui
peut faire quoi avec ce fichier. Chaque fichier possède un ensemble d’attributs définissant les droits
d’accès à ce fichier pour tous les utilisateurs du système.

I. Droits et utilisateurs

Il existe trois classes d’utilisateurs pouvant éventuellement accéder à un fichier

 Le propriétaire du fichier (User).


(
 Le groupe auquel appartient le propriétaire du fichier (Group).
(
 Les autres utilisateurs (O
Others) n’appartenant pas au membrere du groupe du fichier.

Le propriétaire du fichier est celui qui l’a créé et son groupe propriétaire est le groupe principal du
créateur. Pour chaque fichier sont associés un UID (User ( IDentificator)
entificator) et un GID ((Group
IDentificator) identifiant son propriétaire
proprié et son groupe d’appartenance. Pour chaque classe
d’utilisateurs, il y a trois types de droits d’accès à un fichier donné :

 Un fichier peut être accédé en lecture par affichage de son contenu. Ce droit est symbolisé
par la lettre r (read).
 Un fichier peut être accédé en écriture, en modifiant son contenu par exemple. Ce droit est
symbolisé par la lettre w (write).
 Un fichier peut être exécuté. Ce droit est désigné par la lettre x (execute).

II. Signification des droits d’accès

Les tableaux suivants présentent la signification des droits d’accès, respectivement pour les ichiers et
pour les répertoires :

Fichier
r Le contenu du fichier peut être lu et visualisé sur écran (en utilisant la commande cat)
w Le contenu du fichier peut être modifié. La suppression n’est pas forcément liée à ce droit.
Le contenu du fichier peut être exécuté depuis la ligne de commande, qu’il s’agit d’un fichier
x
programme binaire (compilé) ou d’un script shell.

Répertoire
Les éléments du répertoire sont accessibles en lecture (par la commande ls). Cependant, en
r absence de ce droit, on peut accéder à une entrée individuelle (un fichier). Ainsi, on peut lire
un fichier dans un répertoire privé du droit de lecture, si on connaît
connaît son chemin.
Le contenu du répertoire est modifiable donc il est possible d’y créer, renommer, déplacer,
w
copier et supprimer des fichiers. C’est ce droit qui contrôle l’autorisation de suppression d’un

Page 1 sur 6
fichier.
Le répertoire peut être accédé suite à l’exécution de la commande « cd ». En absence de ce
x
droit il est impossible d’accéder au répertoire et d’agir sur son contenu qui devient verrouillé.

III. Changement des droits d’accès

Chaque fichier ou répertoire est créé avec des droits d’accès standards (fichier : rw-rw-rw-,
répertoire : rwx rwx rwx). Cependant, le système permet de les adapter aux besoins des différents
types d’utilisateurs. La commande chmod permet de changer les droits d’accès. Elle peut être
exécutée avec deux formes différentes. La première, appelée forme symbolique, consiste à utiliser
des symboles pour modifier les droits d’accès des utilisateurs. La seconde, appelée forme numérique,
passe par des chiffres en base 8. La commande chmod ne peut être utilisée que par le propriétaire du
fichier. La seule exception à cette règle est l’administrateur du système qui a le droit de tout
modifier.

1- Méthode symbolique

Syntaxe : chmod [option] [qui]+ position [droits]+ fichier(s)

Les options les plus utilisées de chmod sont : -v qui affiche un diagnostique pour chaque fichier
donné en paramètres et –R change les droits des fichiers et répertoires. L’argument qui peut être l’un
des caractères suivants : u|g|o|a

u : le propriétaire du fichier, g : le groupe primaire du propriétaire du fichier, o : les autres utilisateurs


et a : les types de tous les utilisateurs.
L’argument position peut être l’un des opérateurs suivants : + | -| =
+ : pour ajouter un droit
- : pour retirer un droit
= : pour fixer un droit
L’argument droit peut être : r| w| x (r : read droit de lecture, w : write droit d’écriture et x :execute
droit d’exécution)

2- Méthode numérique

Syntaxe : chmod Nombre_en_base8 fichier(s)

Pour pouvoir former ces chiffres en base 8, il faut affecter des numéros aux droits d’accès
individuels : le chiffre 1 correspond aux mentions w, r ou x et le chiffre 0 correspond à «-»

Le tableau suivant résume les valeurs numériques associées à chaque droit.

Propriétaire Groupe Autre


r w x r w x r w x
400 200 100 40 20 10 4 2 1
Les nouveaux droits d’accès pour un fichier sont représentés par la somme de ces chiffres.

Page 2 sur 6
IV. Initialisation des droits d’accès

Lorsque l’utilisateur crée un fichier, des droits d’accès par défaut lui sont attribués par le système. Ce
sont les droits rw-rw-rw- correspondants à la valeur numérique 666 pour un fichier normal. Pour un
répertoire, le système attribue les droits rwxrwxrwx correspondants à la valeur numérique 777.

Il est possible de masquer certains droits. La commande umask permet de définir la protection
maximale que l’on donne par défaut aux nouveaux fichiers et répertoires.

Syntaxe : umask [nnn] où nnn est un chiffre en base 8

Le nombre nnn cité en argument d’umask sera soutrait de la valeur octale des droits d’accès
maximums (777 pour les répertoires et 666 pour les fichiers)

Exemple : nous voudrons garder pour les nouveaux fichiers un droit d’accès en lecture et écriture
pour le propriétaire et un accès limité à la lecture pour le groupe et les autres.

Les droits maximums : rw- rw- rw- 666


Les droits voulus : rw- r-- r-- 644
Le masque à soustraire : --- -w- -w- 022
La commande sera donc umask 022
Même traitement sera appliqué pour les répertoires (777 – 022 = 755)

V. Administration des utilisateurs et des groupes

1- Gestion des utilisateurs

Le fichier /etc/passwd : il présente la base de données des comptes utilisateurs. Elle contient toutes
les informations relatives aux comptes inscrits dans le système. Il possède la structure suivante :

Login :MotDePasse :UID :GID :commentaire :RépertoirePersonnel :Shell

Chaque ligne correspond à un utilisateur et comporte sept champs délimités par des doubles points.

Le premier champ est le nom du compte de l’utilisateur suivi de son mot de passe. Il contient un x si
le mot de passe est crypté. Le troisième champ est celui de l’identifiant du compte. Le champ suivant
est celui du GID qui spécifie le groupe initial auquel appartient l’utilisateur lorsqu’il se connecte. Le
champ suivant contient des indications telles que le vrai nom de l’utilisateur. Le sixième champ
indique le répertoire personnel de l’utilisateur. Le sept champ indique le shell de l’utilisateur. Le
fichier possède les permissions suivantes : rw-r--r--. Ces droits permettent aux utilisateurs normaux
de lire seulement son contenu.

Le fichier /etc/shadow contient toutes les informations sur le mot de passe et sa validité dans le
temps.

2- Ajout d’un utilisateur : useradd

Syntaxe : useradd [option] [argument] NomUtilisateur

Cette commande permet de créer un nouvel utilisateur en spécifiant les paramètres du compte. Le
tableau ci-après présente cette commande.

Page 3 sur 6
Option Rôle
-c commentaire Ajouter des informations concernant l’utilisateur (nom, poste)
-d répertoire Préciser le chemin du répertoire personnel de l’utilisateur
-e date Fixer la date d’expiration du compte. Le format est AAAA-MM-jj
-f nombre de jours Fixer le nombre de jours suivants l’expiration du mot de passe, après
lequel le compte est désactivé. La valeur 0 permet de désactiver le
compte dès que le mot de passe expire. La valeur -1 permet de
désactiver cette caractéristique. La valeur par défaut est -1
-g groupe personnel Préciser le nom du groupe ou le numéro du groupe de connexion
initial de l’utilisateur
-G groupes supplémentaires Fixer les autres groupes auxquels appartient l’utilisateur
-m Créer le répertoire personnel de l’utilisateur
-k [répertoire] A utiliser si et seulement si l’option –m est présente. Permet de copier
les fichiers et répertoires contenus dans le répertoire (/etc/skel si non
spécifié) dans le répertoire de l’utilisateur
-p mot_de_passe_chiffré Saisir le mot de passe en option. Il doit être chiffré (pour récupérer la
version cryptée d’un mot de passe il faut utiliser la bibliothèque crypt).
Le comportement par défaut est de désactiver le compte
-s chemin_vers_un_exécutable Spécifier le shell lancé à la connexion de l’utilisateur
-u uid Fixer l’identifiant unique de l’utilisateur
3- La commande passwd

Syntaxe : passwd [NomUser]

Cette commande sans paramètre permet de modifier le mot de passe de l’utilisateur en cours. Si un
utilisateur est fourni en paramètre, cette commande exécutée par root, permet d’attribuer un mot
de passe à l’utilisateur désigné.

4- Suppression d’un utilisateur

Syntaxe : userdel [-option] nom_utilisateur

Cette commande permet de supprimer un utilisateur du système. L’option –r efface le répertoire


personnel de l’utilisateur considéré.

5- Modification des informations d’un utilisateur

La commande usermod
Syntaxe : usermod [option] [argument] nom_utilisateur

Pour modifier un compte utilisateur, il faut éditer manuellement le fichier /etc/passwd, ensuite
utiliser la commande usermod. Les options courantes sont les suivantes :

Option Effet
-c Change le champ commenté de l’utilisateur; c’est souvent le nom complet
-d Change le répertoire personnel
-e Etablie la date d’expiration et de désactivation du compte
-g Change le groupe de connexion initial
-G Attribue un nouveau groupe secondaire
-l Change le nom de connexion
-s Change le shell de connexion
-u Change l’identifiant de la connexion
-p Change le mot de passe

Page 4 sur 6
Remarque : Par défaut les mots de passe n’expirent pas. Cependant l’utilisateur peut changer le mot
de passe à l’aide de la commande chage avec la syntaxe suivante :

chage [options] nom_utilisateur avec –m : nombre minimum de jours entre chaque changement de
mot de passe et –E date : date d’expiration du mot de passe

VI. Commandes additionnelles

1- Afficher des informations sur un utilisateur

La commande whoami permet de connaître l’identité de l’utilisateur courant. Les commandes who,
users et w permettent de connaître les utilisateurs actuellement connectés sur la machine.

2- Changer le groupe principal

La commande newgrp permet de changer le groupe principal de l’utilisateur durant la session en


cours, à condition que le nouveau groupe précisé soit un groupe secondaire de l’utilisateur. Sans
paramètre, l commande newgrp revient au groupe d’origine.

3- Gestion des groupes

Le fichier /etc /group contient les informations relatives aux groupes présents sur le système. Sa
structure est la suivante : groupe :* :GID :utilisateurs

groupe : le nom du groupe


* : la présence de ce champ est lié aux anciennes versions d’Unix et n’est plus utilisé. Il peut rester
vide ou contenir le caractère « * » ou « x »
GID : c’est l’identifiant unique du groupe sous la forme d’une valeur numérique.
utilisateur : il s’agit de la liste des utilisateurs appartenant au groupe. Ils sont séparés par des
virgules.
Des nouveaux groupes peuvent être ajoutés soit en éditant manuellement le fichier /etc/group ou en
utilisant la commande groupadd nom_groupe
4- Les commandes de manipulation des groupes

groupadd –g identifiant nom_groupe : permet d’attribuer un identifiant à un groupe

groupdel nom_groupe : permet la suppression d’un groupe

groupmod –n vieux_nom nouveau_nom : permet de changer le nom d’un groupe

group –R NomUtilisateur NomGroupe : permet de supprimer un utilisateur des membres d’un groupe

5- Appartenance des fichiers

Lors de la création d’un fichier, celui-ci sera affecté à l’utilisateur qui l’a créé et groupe primaire
auquel appartient cet utilisateur. Ce fichier peut être donné à un autre utilisateur ; c'est-à-dire il
devient son propriétaire et qu’on n’aura que les droits que le nouveau propriétaire voudra bien nous
donner.

Syntaxe : chown [-R] [-h] utilisateur nom […] : change le propriétaire des fichiers spécifiés

Page 5 sur 6
chgrp [-R] [-h] groupe nom […] : change le groupe des fichiers spécifiés

Options courantes

-R : récursif sur tous les fichiers et sous répertoires contenus si nom est un répertoire.
-h : traitement sur les liens symboliques
nom : exprime le nom d’un fichier ou d’un répertoire
utilisateur : représente soit le nom de l’utilisateur, soit son UID (User IDentification)
groupe : représente soit le nom du groupe, soit son GID (Group IDentification)

Page 6 sur 6
Ecole Nationale d’Electronique et des Télécommunications de Sfax
TP4 : Gestion des droits d’accès
Exercice 1

1) Créer 2 répertoires nommés respectivement r_tp4_1 et r_tp4_2 ainsi que sept fichiers
nommés respectivement f_1, f_2, f_3, f_4, f_5, f_6, f_7
2) Placer les 3 premiers fichiers dans le 1er répertoire et les trois fichiers suivants dans le 2ème
répertoire
3) Attribuer les droits d’accès aux fichiers et répertoires comme suit (avec la méthode
symbolique) :
f_1 = 640, f_2 = 600, f_3 = 544, f_4 =740, f_5 = 644, f_6 = 430, f_7 = 664, r_tp4_1 = 640 et
r_tp4_2 = 330
4) Peut-t-on déplacer le fichier f_7 dans le répertoire r_tp4_1. Sinon pourquoi et comment faire
pour pouvoir le déplacé
5) Peut-t-on afficher le contenu du répertoire r_tp4_2 ? pourquoi ?
6) Visualisez votre valeur de « umask »
7) Modifiez votre valeur de « umask » afin de créer des fichiers qui auront comme droits
d’accès par défaut la valeur 444.
8) Créer un nouveau répertoire nommé r_tp4_3 ainsi que deux fichiers nommés f_8 et f_9
9) Visualiser les droits d’accès relatifs à tous les fichiers et répertoire de votre répertoire
courant
10) Etudier la faisabilité des opérations suivantes :
ls r_tp4_3
cp f_8 r_tp4_3
mv f_9 r_tp4_3
cat r_tp4_3/f_8
cat >> r_tp4_3/f_8
rm r_tp4_3/f_8

Exercice 2

Les commandes ci-après doivent être exécutées par le super-utilisateur


1) Créer l’utilisateur user_tp4 avec le répertoire personnel correspondant.
2) Changer le champ commenté de l’utilisateur user_tp4 pour le rendre etudiant_tp4.
3) Visualiser la ligne correspondante à la liste des informations relatives à cet utilisateur dans le
fichier approprié.
4) Fixer la date d’expiration du mot de passe de cet utilisateur à trois jours.
5) Créer un groupe nommé rsi.
6) Modifier l groupe primaire de user_tp4 par rsi.
7) Créer un nouveau groupe nommé lpi ayant comme identifiant 2000.
8) Visualiser la ligne correspondante à la liste des informations relatives à ce groupe dans le
fichier approprié.
9) Ajouter le groupe lpi à la liste des groupes secondaires de l’utilisateur user_tp4. Vérifier cette
opération avec la commande id.
10) Modifier l’appartenance du fichier6 pour ce nouveau groupe.
11) Modifier le nom de connexion de l’utilisateur user_tp4 par user1_tp.
12) Attribuer l’identifiant 900 pour l’utilisateur user1_tp.
13) Visualiser toutes les informations relatives à cet utilisateur dan le fichier approprié .
14) Supprimer l’utilisateur créé et son répertoire personnel.
15) Supprimer le groupe créé.

Vous aimerez peut-être aussi