38 2 426KB
Atelier Systèmes d’exploitation
TP N° 4 : Droits d’accès I. a.
Droits d’accès 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
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