Attention Ceci est un ancien énoncé, utilisez plutôt la version actuelle.
1. Introduction
Rappel des commandes rencontrées et de leur usage basique :
| commande | rôle | usage |
|---|---|---|
man |
lire les pages de manuel | man nomdecommande |
apropos |
trouver des pages de manuel | apropos mot-clef |
who |
qui est connecté | who [-H] |
ls |
afficher le contenu d’un dossier | ls [chemin] |
cd |
se déplacer dans l’arborescence | cd [chemin] |
mkdir |
créer un dossier | mkdir [-p] nomdossier |
pwd |
afficher le dossier courant | pwd |
rmdir |
supprimer un dossier | rmdir nomdossier |
rm |
supprimer un fichier | rm [-r] fichier |
mv |
déplacer ou renommer | mv source... dest |
cp |
copier | cp source... dest |
touch |
créer un fichier (ou changer son timestamp) | touch fichier |
cat |
afficher le contenu d’un fichier | cat [fichier] |
2. Droits
Pour cette partie, nous allons utiliser une partition spéciale contenant des fichiers et dossiers dotés de droits spéciaux.
Tout d’abord, récupérez le fichier disque :
scp mega@194.167.209.99:/home/profs/ehainry/m1105.ext2.xz ~(le mot de passe de mega est mega).Puis décompressez le fichier
xz --decompress m1105.ext2.xz.Enfin, montez cette partition :
rtsudo mount -o loop m1105.ext2 /mnt/loopNote : si cette dernière ligne ne fonctionne pas, utiliser un énoncé de secours.
Copiez le fichier
/mnt/loop/lecture/lecturedans le dossierBureau.Modifiez votre copie (avec nano).
Essayez de modifier l’original.
Ajoutez votre nom dans le fichier
/mnt/loop/lecture/ecriture.Accédez aux dossiers
interdit,lecture,pasxetautorisedans/mnt/loop/. Dans lesquels pouvez vous voir les fichiers, modifier les fichiers, supprimer des fichiers ?
Les élèves (membres du groupe eleves) peuvent créer des fichiers dans
le dossier /mnt/loop/autorise/ mais ne le peuvent pas dans
le dossier /mnt/loop/lecture. De plus, il est possible de
voir le contenu de ces dossiers mais pas celui de
/mnt/loop/interdit.
D’autre part, le fichier /mnt/loop/lecture/ecriture est
modifiable tandis que /mnt/loop/lecture/lecture et
/mnt/loop/lecture/interdit ne le sont pas et interdit
n’est même pas lisible. Ces dossiers et ces fichiers disposent de droits
différents.
L’option -l (ell) de la commande ls permet d’obtenir plus
d’informations sur les fichiers et dossiers. Ainsi, la commande
ls -l /mnt/loop renvoie quelque chose ressemblant à
robert@backus17:~$ ls -l /mnt/loop
drwxrwxrwx 3 manager profs 4096 Sept 21 10:21 autorise
-rw-rw-rw- 1 manager profs 63 Sept 21 10:21 autre
-rw-r--r-- 1 manager profs 64 Sept 21 10:21 essai
drwxr-x--- 5 manager profs 4096 Sept 21 10:21 interdit
drwxr-xr-x 5 manager profs 4096 Sept 21 10:21 lecture
Les colonnes représentent respectivement les droits, le nombre de liens, le login du propriétaire, le groupe du propriétaire, la taille du fichier, la date de création et enfin le nom.
Analysons les droits sur interdit.
d-
Le premier caractère indique le type du fichier.
dsignifie qu’il s’agit d’un dossier.-que c’est un fichier régulier. Nous verrons d’autres types prochainement. rwx-
Les trois caractères suivants représentent les droits accordés au
propriétaire (ici
manager). Ils représentent respectivement les droits de lecture (read), d’écriture (write) et d’exécution (execute). r-x-
Les trois caractères suivants représentent les droits accordés au
groupe (ici
profs). Les membres du groupe ont ici droit de lecture et d’exécution mais pas d’écriture (le - représente l’absence du droit). ---- Les trois derniers caractères représentent les droits accordés aux personnes qui n’appartiennent pas aux groupes (cela inclut dans notre exemple les élèves par exemple).
Sur un fichier, le droit d’écriture permet de modifier le contenu du
fichier, le droit de lecture permet d’afficher le contenu du fichier. Le
droit d’exécution permet l’exécution (voir les fichiers dans
/usr/bin).
Sur un dossier, le droit de lecture permet de connaître la liste des fichiers contenus, le droit d’exécution permet d’aller dans le dossier en question, le droit d’écriture permet de modifier la liste des fichiers, c’est-à-dire de créer ou supprimer des fichiers dans ce dossier.
Répondez aux questions suivantes en vérifiant vos réponses à l’aide des commandes ls, touch, rm, cat et gedit (il s’agit d’un éditeur de texte).
Questions
- En fonction des droits précisés ci-dessus, est-il possible de
modifier
essaietautre? Vérifier. - Est-il possible de supprimer
essaietautre? - Est-il possible de lister le contenu de
autorise,interditetlecture. - Est-il possible de supprimer des fichiers dans ces 3 dossiers ?
- Est-il possible de créer des fichiers dans ces 3 dossiers ?
- Expliquez ces différents comportements à l’aide des droits.
- Pouvez-vous lister, explorer, vider les dossiers
z1,z2,z3,z4,z5,z6? On pourra utiliseridpour retrouver les groupes auxquels robert appartient. - Pour les fichiers ayant les droits suivants (et le groupe
eleves), pouvez-vous les modifier, les lire, les supprimer ?
| droits | modifier | lire | supprimer |
|---|---|---|---|
-rwxrwxrwx |
|||
-rwxr--r-- |
|||
-r--r--r-- |
|||
-rwx-w--w- |
- Pour les dossiers ayant les droits suivants (et le groupe
eleves), pouvez-vous y créer un fichier, supprimer un fichier, lister le contenu, lister le contenu de façon détaillée, supprimer le dossier ?
| droits | créer fichier | suppr. fichier | liste | liste détaillée | suppr. |
|---|---|---|---|---|---|
drwxr--r-- |
|||||
drwxr-xr-x |
|||||
drwxrwxrwx |
|||||
drwx-w--w- |
Dans la suite, vous allez pouvoir vérifier vos réponses en créant des
fichiers et dossiers ayant les droits en question. La commande chmod
permet de changer les droits d’un fichier ou dossier.
2.1. Les modes octal et symbolique
En lisant les parties SYNOPSIS et DESCRIPTION de la page de man de
chmod, on apprend qu’il y a deux modes différents pour changer les
droits d’un fichier ou dossier avec chmod : le mode octal et le mode
symbolique.
Le mode symbolique
Dans le mode symbolique, on cherche à exprimer les droits à modifier sous la forme : 1. À qui s’adresse le changement ; 2. S’agit-il d’un ajout ou d’une suppression de droits ; 3. Quels droits sont concernés.
Cela se réalise en mettant un u (user), g (group), o (other) ou un
a (all), puis un + ou un - et enfin une combinaison de r, w et
x.
Par exemple
chmod a-w nomdefichier
retire le droit d’écriture à tout le monde (propriétaire, groupe et
autres) sur le fichier nomdefichier. Notons que l’on peut réaliser
plusieurs changements en une seule fois en les séparant par des
virgules. Par exemple chmod u+rw,g-w,o-rw ff.
Le mode octal
Le mode octal décrit sous forme numérique les droits que l’on veut voir
appliquer au fichier. Par exemple, supposons que l’on veuille donner les
droits rwxr--r-x au fichier nomfichier.
Premièrement, on remplace les - par des 0 et les lettres par des 1. On
obtient donc dans notre exemple 111100101.
Deuxièmement, on convertit ce nombre binaire en octal. Dans l’exemple, on trouve 745. Notons que le premier chiffre correspond aux droits pour le propriétaire, le deuxième chiffre aux droits du groupe et le troisième chiffre aux droits des autres car 3 chiffres binaires correspondent exactement à un chiffre octal.
Questions
Donnez deux façons de mettre les droits
-r-----r--à un fichier.Créez un dossier
uploaddans votre «home» dans lequel vos camarades (membres du groupeeleves) peuvent écrire mais dont ils ne pourront pas lire les fichiers, et sur lequel les autes utilisateurs n’auront aucun droit.Un autre eleve pourrait-il supprimer le fichier déposé ?
Créez un dossier
partagedans lequel les membres du groupe profs pourront lire les fichiers mais les autres élèves n’auront aucun droit.Dans le répertoire
partage, créez un fichier que les profs peuvent modifier. Peuvent-ils le supprimer ?
Il est important de se rappeler que le droit de supprimer un fichier ne dépend pas des droits de ce fichier mais uniquement des droits sur le dossier le contenant.
2.2. umask et les droits par défaut (Optionnel)
Les fichiers et dossiers que vous créez le sont avec des droits par
défaut, droits que l’on peut ensuite changer avec chmod. Ces droits
par défaut correspondent au umask. Cette commande affiche ou modifie le
masque des permissions. L’umask est le complémentaire à 777 du mode
octal des droits des fichiers par défaut. Ainsi un umask de 022
correspond à des droits par défaut de 755.
Exercice :
- Ouvrez plusieurs fenêtres de terminal. Changez l’umask dans un des terminaux. L’umask a-t-il changé dans les autres fenêtres ?
- Changez l’umask dans un terminal et lancez un terminal depuis ce
terminal (
xterm &ourxvt &). Quel est l’umask dans ce nouveau terminal ? - Changez l’umask de façon à ce que les fichiers que vous créez vous octroient tous les droits possibles mais n’en offre à personne d’autre.