Académique Documents
Professionnel Documents
Culture Documents
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
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).
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é.
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
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
2- Méthode numérique
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 à «-»
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.
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.
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 :
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.
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
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é.
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
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.
Le fichier /etc /group contient les informations relatives aux groupes présents sur le système. Sa
structure est la suivante : groupe :* :GID :utilisateurs
group –R NomUtilisateur NomGroupe : permet de supprimer un utilisateur des membres d’un groupe
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