Atelier Systèmes d’exploitation
TP N° 4 : Droits d’accès
I. Droits d’accès
a. Créer un petit fichier texte (de contenu quelconque) qui soit lisible par tout le monde mais pas
modifiable (même pas par vous).
chmod a+r,a-w fich1.txt
OU BIEN
chmod 444 fich1.txt
b. Créer un répertoire nommé secret, dont le contenu soit visible uniquement par vous-même. Les
fichiers placés dans ce répertoire sont-ils lisibles par d’autres membres de votre groupe.
mkdir secret
chmod u+r,go-r secret
c. Créer un répertoire iset_nabeul tel que les autres utilisateurs ne puissent pas lister son contenu
mais puissent lire les fichiers qui y sont placés. On obtiendra :
ls iset_nabeul
ls : iset_nabeul: Permission denied
cat iset_nabeul/cours
<...le contenu du fichier cours (s’il existe)...>
mkdir iset_nabeul
iset_nabeul/cours
La commande suivante permet d’interdire le droit de lecture pour les autres utilisateurs (tout les
utilisateurs sauf le propriétaire) pour qu’ils ne puissent pas lister le contenu du répertoire iset_nabeul.
chmod go-r iset_nabeul
La commande suivante permet d’ajouter le droit de lecture sur tous les fichiers placés dans le répertoire
iset_nabeul.
chmod go+r iset_nabeul/*
II. Droits (commandes)
a. Changer les droits sur votre compte afin que les autres utilisateurs ne puissent pas y accéder. Quelles
sont les commandes tapées ?
Imene Sghaier 1
Atelier Systèmes d’exploitation
Accéder à un répertoire signifie se déplacer vers ce répertoire (traverser) donc ça nécessite le droit
d’exécution sur le répertoire. Le répertoire correspondant à votre compte c’est votre répertoire de
connexion.
chmod go-x ~
b. Créer un répertoire dans /tmp qui ne soit accessible (rx) que par les membres du groupe, puis y créer
un fichier temporaire qui soit lisible et modifiable par les utilisateurs du groupe, mais pas par les autres.
mkdir /tmp/newdir
chmod g=rx,o-rx /tmp/newdir
touch /tmp/newdir/temporaire
chmod g=rw,o-rw /tmp/newdir/temporaire
c. Les utilisateurs du groupe peuvent-ils supprimer le fichier toto ? Pourquoi ?
Les utilisateurs du groupe ne peuvent pas supprimer le fichier temporaire vu qu’ils n’ont pas le
droit d’écriture (w) sur le répertoire contenant tempraire. C'est-à-dire qu’ils ne peuvent pas créer
et supprimer des fichiers dans le répertoire /tmp/newdir.
2. Droits d’accès par défauts
a. Donner les droits d’accès minimal pour pouvoir effectuer les actions suivantes :
Créer un fichier.
Pour créer un fichier, on doit avoir le droit d’écriture dans le répertoire qui va contenir le nouveau
fichier créé.
Copier un fichier.
Pour copier un fichier vers un répertoire destination, on doit avoir le droit d’écriture dans le
répertoire qui va contenir le fichier copié (le répertoire destination).
Renommer un fichier.
Renommer un fichier ne nécessite aucun droit.
Lister le contenu d’un fichier.
Il faut avoir le droit de lecture du fichier.
Créer un répertoire.
Pour créer un répertoire, on doit avoir le droit d’écriture dans le répertoire qui va contenir le
nouveau répertoire créé.
Supprimer un répertoire avec son contenu.
Pour supprimer un répertoire avec son contenu, on doit avoir le droit d’écriture dans le répertoire
et dans chaque sous répertoire pour pouvoir supprimer toute l’arborescence.
b. Quelle est la commande qui permet de fixer les droits d’accès d’un nouveau fichier aux droits rw- r-- -
-- ? que seront les droits d’accès pour un nouveau répertoire ?
Le nouveau fichier aura les droits d’accès, rw-r-- --- donc une protection numérique 640.
Le masque nécessaire est 666-640=026.
Donc on doit écrire la commande suivante :
Imene Sghaier 2
Atelier Systèmes d’exploitation
umask 026
touch f1
ls –l f1
-rw-r----- 1
………………………………………………………………………………………………………… f1
Un nouveau répertoire aura la protection numérique 777-026=751 donc les droits d’accès, rwxr-x-
-x.
mkdir rep1
ls –l
drwxr-x--x 2
…………………………………………………………………………………………………… rep1
c. Quelle est la commande qui permet de fixer les droits d’accès d’un nouveau répertoire aux
droits rwx r-x r-x ? Que seront les droits d’accès pour un nouveau fichier ?
Le nouveau répertoire aura les droits d’accès, rwxr-xr-x donc une protection numérique 755.
Le masque nécessaire est 777-755=022.
Donc on doit écrire la commande suivante :
umask 022
mkdir rep2
ls –l
drwxr-xr-x 2
………………………………………………………………………………………………… rep2
Le nouveau fichier qui sera créé aura la protection : 666-022=644
touch f1
ls –l f1
-rw-r--r-- 1
………………………………………………………………………………………………………… f1
3. Quelques manipulations sur les permissions
a. Créer un répertoire rep1. Fixer ses droits de manière à ce que personne d’autre que vous ne puisse y
lire ni y écrire. Quelles sont les commandes tapées ?
mkdir rep1
chmod u+rw,go-rw rep1
b. Se placer dans rep1. Créer un fichier de nom fic1.txt. Editer ce fichier en utilisant une méthode (vi,
cat, echo,…). Afficher le contenu du fichier.
cd rep1
touch fic1.txt
Imene Sghaier 3
Atelier Systèmes d’exploitation
echo ‘Bonjour’ >> fic1.txt
cat fic1.txt
Bonjour.
c. Changer les droits du fichier de façon à ce que personne ne puisse plus y écrire.
chmod a-w fic1.txt
d. Sans changer de répertoire courant, créer un répertoire de nom rep2 dans votre répertoire de
connexion en utilisant des chemins d’accès relatifs.
mkdir ../rep2
e. Vérifier que vous pouvez écrire dans rep2. Si ce n’est pas le cas, changez les droits de façon à ce
qu’on puisse y écrire.
ls –l ..
Affiche les droits du contenu du répertoire de connection y compris le répertoire rep2. Si le droit d’écriture
est absent pour le propriétaire, on exécute la commande suivante.
chmod u+w ../rep2
f. Copier le fichier fic1.txt dans le répertoire rep2. Renommer le fichier fic1.txt du répertoire courant (ça
doit être rep1) en fic2.txt en utilisant des chemins d’accès absolus.
cp fic1.txt ../rep2
mv ~/rep1/fic1.txt ~/rep1/fic2.txt
OU en utilisant tout le répertoire de connection /home/imene
mv /home/imene/rep1/fic1.txt /home/imene/rep1/fic2.txt
g. Afficher le contenu de fic1.txt. Vérifier les droits de fic1.txt et fic2.txt en utilisant des références
relatives.
cat ../rep2/fic1.txt
Bonjour.
ls –l ../rep2/fic1.txt fic2.txt
h. Essayer d’effacer rep1, rep2, fic1.txt, fic2.txt en une seule commande, à partir du répertoire courant.
Que se passe t-il ?
rm -r ~/rep1 ~/rep2
rm:remove write-protected regular file`/home/user1/rep1/fic2.txt'? Y
rm:remove write-protected regular file`/home/user1/rep2/fic1.txt'? Y
On peut aussi utiliser les métacaractères:
rm -r ~/rep[12]
rm:remove write-protected regular file`/home/user1/rep1/fic2.txt'? Y
rm:remove write-protected regular file`/home/user1/rep2/fic1.txt'? Y
Explication: lorsque le répertoire à supprimer contient des fichiers protégés en écriture, le système
demande la confirmation pour les supprimer, ceci le cas des fichiers fic2.txt et fic1.txt, et l'utilisateur répond
par Y (Yes)ou N (No).
Imene Sghaier 4
Atelier Systèmes d’exploitation
4. chmod
a. Créez dans votre répertoire de connexion, 2 répertoires nommés respectivement tp_rep1 et tp_rep2
ainsi que sept fichiers nommés respectivement f_1, f_2, f_3, f_4, f_5, f_6, f_7.
mkdir tp_rep1 tp_rep2
touch f_1 f_2 f_3 f_4 f_5 f_6 f_7
b. Placez les 3 premiers fichiers dans le 1er répertoire et les 3 fichiers suivants dans le 2ème répertoire.
mv f_1 f_2 f_3 tp_rep1
mv f_4 f_5 f_6 tp_rep2
c. Attribuez les droits d’accès aux fichiers et répertoires comme suit (avec une méthode non numérique)
de la façon suivante :
tp_rep1 = 640
tp_rep2 = 530
f_1 = 644
f_2 = 640
f_3 = 544
f_4 = 740
f_5 = 644
f_6 = 430
f_7 = 664
chmod u=rw tp_rep1
chmod g=r tp_rep1
chmod o-rwx tp_rep1
chmod u=rw tp_rep1/f_1
chmod go=r tp_rep1/f_1
chmod u=rw tp_rep1/f_2
chmod g=r tp_rep1/f_2
chmod o-rwx tp_rep1/f_2
…..
On ne peut pas placer le fichier f_7 dans le répertoire tp_rep2 puisque on n’a pas le droit d’écriture dans
le répertoire tp_rep2. On doit ajouter le droit d’écriture au répertoire tp_rep2.
Imene Sghaier 5