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

  1. Créez un dossier Bureau dans votre home.
  2. Copiez le fichier /home/profs/ehainry/lecture/lecture dans le dossier Bureau.
  3. Modifiez votre copie ~/Bureau/lecture (avec nano).
  4. Essayez de modifier l’original.
  5. Ajoutez votre nom dans le fichier /home/profs/ehainry/lecture/ecriture.
  6. Accédez aux dossiers interdit, lecture, pasx et autorise dans /home/profs/ehainry/. Dans lesquels pouvez vous voir les fichiers, modifier les fichiers, supprimer des fichiers ?

Vous pouvez créer des fichiers dans le dossier autorise mais ne le pouvez pas dans le dossier lecture. De plus, il est possible de voir le contenu de ces dossiers mais pas celui de interdit.

D’autre part, le fichier lecture/ecriture est modifiable tandis que lecture/lecture ne l’est pas. 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 /home/profs/ehainry/ renvoie quelque chose ressemblant à

robert@backus17:~$ ls -l ~ehainry
drwxrwxrwx 3 ehainry profs  4096 Sept 21 10:21 autorise
-rw-rw-rw- 1 ehainry profs    63 Sept 21 10:21 autre
-rw-r--r-- 1 ehainry profs    64 Sept 21 10:21 essai
drwxr-x--- 5 ehainry profs  4096 Sept 21 10:21 interdit
drwxr-xr-x 5 ehainry 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. d signifie 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 ehainry). 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, vous est-il possible de modifier essai et autre ? Vérifier.
  • Pouvez-vous supprimer essai et autre ?
  • Pouvez-vous lister le contenu de autorise, interdit et lecture.
  • 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.
  • Supposons que des fichiers appartenant à robert (groupe eleves), aient les droits ci-dessous. Pouvez-vous les modifier, les lire, les supprimer ?
droits modifier lire supprimer
-rwxrwxrwx
-rwxr--r--
-r--r--r--
-rwx-w--w-
  • Pour des dossiers appartenant à robert:eleves et ayant les droits suivants, 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

  1. Donnez deux façons de mettre les droits -r-----r-- à un fichier.
  2. Créez un dossier upload dans votre «home» dans lequel vos camarades (membres du même groupe que vous) peuvent écrire mais dont ils ne pourront pas lire les fichiers, et sur lequel les autes utilisateurs n’auront aucun droit.
  3. Créez un dossier partage dans lequel les membres du groupe profs pourront lire les fichiers mais les membres de votre groupe autre que vous n’auront aucun droit.
  4. 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 :

  1. umask donne l’umask actuel. umask 123 passe l’umask à la valeur 123.
  2. Changer l’umask. Créer un fichier avec touch et un dossier avec mkdir. Quels sont leurs droits.
  3. 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.