Gros lifting de droits.html, correction de quelques coquilles dans

fichiers.html.
This commit is contained in:
mlnguyen 2004-02-05 19:38:22 +00:00
parent cc59f1b70e
commit 2dc5dcb5f5
4 changed files with 340 additions and 63 deletions

BIN
unix/acces.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -10,46 +10,100 @@
<h1>Les droits d'accès sous Unix</h1>
<p>
Qu'est-ce que ces « droits d'accès » ? C'est un modèle qui décrit,
pour chaque fichier ou chaque répertoire, qui a le droit de lire,
exécuter (ou traverser dans le cas d'un répertoire) ou modifier. Sur
votre Mac ou PC Windows personnel, ces considérations ne sont
peut-être pas très importantes si vous êtes le seul utilisateur. Mais
c'est particulièrement important sous Unix, qui est un système conçu
pour être multi-utilisateurs.
</p>
<h2>Lire les droits</h2>
<p>
Chaque fichier a plusieurs propriétés associées: le <em>propriétaire</em>, le
<em>groupe propriétaire</em>, la date de dernière modification, et les
<em>droits d'accès</em>. On peut examiner ces propriétés grâce à l'option
<code>-l</code> de <code>ls</code>. Exemple:
Chaque fichier a plusieurs propriétés associées : le
<em>propriétaire</em>, le <em>groupe propriétaire</em>, la date de
dernière modification, et les <em>droits d'accès</em>. On peut
examiner ces propriétés grâce à l'option <code>-l</code> de
<code>ls</code>. Dans cet exemple, nous voyons les permissions
standard d'un répertoire et de deux fichiers :
</p>
<pre>
<span class="prompt">corvette ~ $</span> ls -l droits.html
-rw-r--r-- 1 tuteurs tuteurs 4041 Sep 19 16:00 droits.html
<span class="prompt">clipper ~/DEA $</span> ls -l
total 205
drwxr-xr-x 2 toto phy03 512 Jan 16 10:02 fiches/
-rw-r--r-- 1 toto phy03 72008 Oct 2 2003 article.dvi
-rw-r--r-- 1 toto phy03 145905 Oct 2 2003 article.pdf
</pre>
<h3>Type</h3>
<p>
<code>-</code> pour les fichiers, <code>d</code> pour les répertoires. On
trouve également parfois <code>l</code> pour les liens symboliques, et
d'autres choses plus exotiques.
<p class="continue">
Les permissions sont indiquées dans la colonne de gauche, suivant un
format bien particulier :
</p>
<h3>Droits du propriétaire</h3>
<div class="illustration">
<img src="acces.png" width="379" height="168"
alt="[Structure des permissions d'un fichier et d'un répertoire]" />
</div>
<h3>Permissions</h3>
<p>
Comme nous le voyons sur l'image ci-dessus, le bloc de permissions se
divise en quatre éléments.
</p>
<h4>Type</h4>
<p>
Le premier caractère du bloc de permissions indique le type du
fichier : <code>-</code> pour un fichier normal, <code>d</code> pour
un répertoire. On trouve également parfois <code>l</code> pour les
liens symboliques, et d'autres choses plus exotiques.
</p>
<h4>Droits du propriétaire</h4>
<ul>
<li><code>r</code> ou <code>-</code> : droit de lire le fichier
(<code>r</code> pour oui, <code>-</code> pour non)</li>
<li><code>w</code> ou <code>-</code> : droit d'écrire dans le fichier</li>
<li><code>x</code> ou <code>-</code> : droit d'exécuter le fichier
(ou de fouiller dans le répertoire)</li>
<li><strong>r</strong> ou <code>-</code> : droit de lire (r pour <i
lang="en">read</i>) le fichier (<code>r</code> pour oui,
<code>-</code> pour non)</li>
<li><strong>w</strong> ou <code>-</code> : droit d'écrire (w pour <i
lang="en">write</i>) dans le fichier</li>
<li><strong>x</strong> ou <code>-</code> : droit d'exécuter (x pour <i
lang="en">execute</i>) le fichier.</li>
</ul>
<h3>Droits du groupe</h3>
<p>
Comme les droits du propriétaire, mais s'applique aux gens qui sont dans le
groupe propriétaire.
Pour un répertoire, les choses sont un peu différentes. Le couple
<code>rx</code> donne le droit d'examiner le répertoire et son
contenu. Le bit <code>w</code> donne le droit d'ajouter ou de
supprimer des fichiers dans le répertoire.
</p>
<h3>Droits des autres</h3>
<p>
Il existe d'autres types de droits plus exotiques, comme le bit setuid
(s) ou encore le « sticky bit » (t). Si ça vous intéresse, lisez la <a
href="&url.tuteurs;unix/aide.html">page de man</a> de
<code>chmod</code>.
</p>
<h4>Droits du groupe</h4>
<p>
Comme les droits du propriétaire, mais s'applique aux gens qui sont
dans le groupe propriétaire (voir ci-dessous sur les <a
href="#group">groupes</a>).
</p>
<h4>Droits des autres</h4>
<p>
Comme les droits du propriétaire, mais s'applique aux gens qui sont ni
@ -70,44 +124,262 @@ Le nom de login de la personne
propriétaire peut changer les droits ou le groupe d'un fichier.
</p>
<h3>Groupe propriétaire</h3>
<h3><a name="group">Groupe propriétaire</a></h3>
<p>
Le nom du groupe du fichier. Les groupes sont des ensembles d'utilisateurs
qui sont fixés par l'administrateur du système.
Les groupes sont des ensembles d'utilisateurs qui sont fixés par
l'administrateur du système. Ils sont un moyen pour gérer un peu
finement les droits d'accès. En l'espèce, à l'ENS, les groupes n'ont
pas une très grande importance. Votre groupe porte le nom de votre
spécialité (<code>litt</code> pour les littéraires, <code>bio</code>
pour les biologistes, etc.) assorti de votre promo. C'est la commande
<code>id</code> qui vous révèle le(s) groupe(s) auquel vous
appartenez :
</p>
<pre>
<span class="prompt">clipper ~ $</span> id
uid=4242(toto) gid=276(phy03) groups=276(phy03)
</pre>
<p class="continue">
La commande vous indique d'abord votre identifiant d'utilisateur (UID)
et votre login, puis votre identifiant de groupe principal (GID) et
enfin tous les groupes dans lesquels vous vous trouvez.
</p>
<h3>Taille</h3>
<p>
En octets.
Elle est indiquée en octets.
</p>
<h2>La commande <code>chmod</code></h2>
<h2>Modifier les droits d'accès</h2>
<p>
Pour changer les droits d'un fichier, la commande est "chmod".
Exemples:
Il existe 4 commandes liées aux droits d'accès :
</p>
<ul>
<li><code>chmod a+x foo</code> : ajoute (<code>+</code>)
le droit d'exécution (<code>x</code>) pour tout le monde
(<code>a</code>ll) au fichier <code>foo</code></li>
<li><code>chmod g-r bar</code> : enlève (<code>-</code>)
le droit de lecture (<code>r</code>) pour les gens du groupe
(<code>g</code>roup) sur le fichier <code>bar</code></li>
<li><code>chmod u-w gee</code> : enlève (<code>-</code>)
le droit d'écriture (<code>w</code>) pour le propriétaire
(<code>u</code>ser) sur le fichier <code>gee</code></li>
<li> <code>chmod</code> (<i lang="en">change mode</i>), la plus utile,
qui modifie les permissions</li>
<li> <code>chgrp</code> (<i lang="en">change group</i>) qui modifie le
groupe d'un fichier ou répertoire</li>
<li> <code>chown</code> (<i lang="en">change owner</i>) qui modifie le
propriétaire d'un fichier ou répertoire</li>
<li> <code>umask</code>, qui définit les protections par défaut</li>
</ul>
<p>
Les commandes <code>chgrp</code> et <code>chown</code> servent surtout
à l'administrateur du système, donc nous ne les examinerons pas ici
(lisez leur <a href="&url.tuteurs;unix/aide.html">page de man</a> pour
en savoir plus). En revanche, <code>chmod</code> est une commande très
pratique dans une utiisation courante.
</p>
<h3>Notation symbolique</h3>
<p>
Cette notation consiste à associer un ou plusieurs degrés de
propriété, une action et un ou plusieurs types d'accès. On l'utilise
généralement pour ajouter ou retirer des permissions par rapport à la
normale (<code>-rw-r--r--</code> pour un fichier,
<code>drwxr-xr-x</code> pour un répertoire).
</p>
<table class="tableau">
<tr>
<th>Degré de propriété</th><th>Action</th><th>Type d'accès</th>
</tr><tr>
<td>
<table>
<tr>
<td><code>u</code> (utilisateur)</td>
</tr><tr>
<td><code>g</code> (groupe)</td>
</tr><tr>
<td><code>o</code> (autres)</td>
</tr><tr>
<td><code>a</code> (tout le monde)</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td>+ (ajoute le droit)</td>
</tr><tr>
<td><code>-</code> (enlève le droit)</td>
</tr><tr>
<td><code>=</code> (définit le droit)</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td><code>r</code> (lecture)</td>
</tr><tr>
<td><code>w</code> (écriture)</td>
</tr><tr>
<td><code>x</code> (exécution</td>
</tr>
</table>
</td>
</tr>
</table>
<h3>Quelques exemples</h3>
<h4>Protéger un fichier</h4>
<p>
Ici, vous interdisez à tout autre que vous l'accès à votre fichier
(c'est ce qu'à l'ENS on appelle couramment le « mode parano »).
</p>
<pre>
<span class="prompt">clipper ~ $</span> ls -l fichier.txt
-rw-r--r-- 1 toto phy03 42 Jan 5 12:08 fichier.txt
<span class="prompt">clipper ~ $</span> chmod og-r fichier.txt
<span class="prompt">clipper ~ $</span> ls -l fichier.txt
-rw------- 1 toto phy03 42 Feb 5 12:08 fichier.txt
</pre>
<h4>Protéger un répertoire</h4>
<p>
Même chose pour un répertoire...
</p>
<pre>
<span class="prompt">clipper ~ $</span> ls -l | grep repertoire
drwxr-xr-x 2 toto phy03 512 Feb 5 12:19 repertoire/
<span class="prompt">clipper ~ $</span> chmod go-rx repertoire
<span class="prompt">clipper ~ $</span> ls -l | grep repertoire
drwx------ 2 toto phy03 512 Feb 5 12:19 repertoire/
</pre>
<h4>Rétablir des droits normaux pour un fichier</h4>
<p>
Certains fichiers sont par défaut en mode parano. C'est le cas par
exemple de votre mail : quand vous sauvegardez un fichier en
provenance de votre boîte aux lettres, il est protégé. Pour permettre
aux autres l'accès au fichier :
</p>
<pre>
<span class="prompt">clipper ~ $</span> chmod og+r fichier.txt
</pre>
<h4>Rétablir des droits normaux pour un répertoire</h4>
<pre>
<span class="prompt">clipper ~ $</span> chmod go+rx repertoire
</pre>
<h4>Rendre un script exécutable</h4>
<p>
Par défaut un fichier n'est pas un exécutable. Pour rendre exécutable
par tout le monde le joli script que vous venez d'écrire, faites
simplement :
</p>
<pre>
<span class="prompt">clipper ~ $</span> chmod +x script
</pre>
<h3>Notation numérique</h3>
<p>
Cette notation est un peu plus complexe. Elle se fonde sur le principe
suivant : considérons un bloc de permissions,
<code>rw-r--r--</code>. Quand une lettre est présente, ça veut dire
que l'accès est autorisé, quand elle est absente (-), il est
refusé. On peut traduire ceci de façon binaire :
</p>
<table class="tableau">
<tr>
<td>r</td><td>w</td><td>-</td><td>r</td><td>-</td><td>-</td><td>r</td><td>-</td><td>-</td>
</tr><tr>
<td>1</td><td>1</td><td>0</td><td>1</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td>
</tr>
</table>
<p class="continue">
Ce qui donne 110-100-100. 110 vaut 6 en décimal, 100 vaut 4 (voir le
teableau ci-dessous), donc la représentation numérique de
<code>rw-r--r--</code> est 644. Cette valeur peut être indiquée
exactement à <code>chmod</code> :
</p>
<pre>
<span class="prompt">clipper ~ $</span> ls -l fichier.txt
-rw------- 1 toto phy03 42 Feb 5 12:08 fichier.txt
<span class="prompt">clipper ~ $</span> chmod 644 fichier.txt
<span class="prompt">clipper ~ $</span> ls -l fichier.txt
-rw-r--r-- 1 toto phy03 42 Jan 5 12:08 fichier.txt
</pre>
<table class="tableau">
<tr>
<th>Accès</th><td>---</td><td>--x</td><td>-w-</td><td>-wx</td><td>r--</td><td>r-x</td><td>rw-</td><td>rwx</td>
</tr><tr>
<th>Binaire</th><td>000</td><td>001</td><td>010</td><td>011</td><td>100</td><td>101</td><td>110</td><td>111</td>
</tr><tr>
<th>Décimal</th><td>0</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td>
</tr>
</table>
<h3>Quelques permissions habituelles</h3>
<table class="tableau">
<tr>
<th>Permission</th><th>Valeur
numérique</th><th>Type de fichier</th><th>Signification</th>
</tr><tr>
<td>---------</td><td>000</td><td>N'importe quel type.</td><td>Aucun
accès à qui que ce soit</td>
</tr><tr>
<td>rw-------</td><td>600</td><td>Fichiers</td><td>Fichier parano :
lecture et écriture réservées au propriétaire.</td>
</tr><tr>
<td>rw-r--r--</td><td>644</td><td>Fichiers</td><td>Standard : tout le
monde peut lire le fichier mais vous êtes le seul à pouvoir le
modifier.</td>
</tr><tr>
<td>rw-rw-rw</td><td>666</td><td>Fichiers</td><td>Fichier public :
tout le monde peut lire et écrire.</td>
</tr><tr>
<td>rwx------</td><td>700</td><td>Répertoires</td><td>Répertoire parano :
lecture, accès et écriture réservés au propriétaire.</td>
</tr><tr>
<td rowspan="2">rwxr-xr-x</td><td rowspan="2">755</td><td>Fichiers</td><td>Fichier
lisible et exécutable par tous, vous seul pouvez le modifier.</td>
</tr><tr>
<td>Répertoires</td><td>Standard : tout le monde peut accéder au
répertoire et lire son contenu, vous seul pouvez modifier le contenu.</td>
</tr><tr>
<td rowspan="2">rwxrwxrwx</td><td
rowspan="2">777</td><td>Répertoires</td><td>Répertoire public : tout
le monde peut y accéder, lire le contenu et modifier celui-ci.</td>
</tr><tr>
<td>Fichiers</td><td>Exécutable public : tout le
monde peut le lire, l'exécuter et le modifier.</td>
</tr>
</table>
<div class="metainformation">
Auteurs : Roberto Dicosmo et Xavier Leroy (1993?), Émilia Robin, Nicolas
George.
Dernière modification le 2002-11-22.
</div>
Auteurs : Émilia Robin, Nicolas George, Marie-Lan Nguyen. Dernière modification : <date
value="$Date: 2004-02-05 19:38:22 $" /> </div>
</body>
</html>

View file

@ -14,12 +14,13 @@
<p>
Un fichier est un paquet d'informations : du texte, de la musique, une
image... Chaque objet que vous manipulez en informatique (une page Web, la
musique de Casimir, vos photos de vacances, un logiciel...) correspond à un
fichier. Quand vous écrivez un texte avec Word et que vous le sauvegardez sous
le nom « Rapport de maîtrise », vous créez un fichier à ce nom, écrit
sur le disque dur. Chaque fois que vous écrivez quelque chose sur le disque,
vous créez un ou plusieurs fichiers.
image... Chaque objet que vous manipulez en informatique (une page
Web, la musique de Casimir, vos photos de vacances, un logiciel...)
correspond à un fichier. Quand vous écrivez un texte avec Word et que
vous le sauvegardez sous le nom « Rapport de maîtrise », vous créez un
fichier à ce nom, écrit sur le disque dur. Chaque fois que vous
écrivez quelque chose sur le disque, vous créez un ou plusieurs
fichiers.
</p>
<p>

View file

@ -83,21 +83,22 @@ utiliser ces imprimantes. </p>
<h2>Structure d'un système Unix</h2>
<p> Pendant le fonctionnement d'un ordinateur sous le système
d'exploitation Unix, plusieurs processus fonctionnent en même temps (plus
précisément l'un après l'autre en alternance dans le cas d'un ordinateur
ayant un unique processeur). Ainsi, une défaillance d'un de ces processus
n'implique pas de défaillance globale du système. <a
href="processus.html">Cette page permet
d'apprendre à gérer concrètement ses processus.</a>
<p>
Pendant le fonctionnement d'un ordinateur sous le système
d'exploitation Unix, plusieurs processus fonctionnent en même temps
(plus précisément l'un après l'autre en alternance dans le cas d'un
ordinateur ayant un unique processeur). Ainsi, une défaillance d'un de
ces processus n'implique pas de défaillance globale du système. <a
href="processus.html">Cette page permet d'apprendre à gérer
concrètement ses processus.</a>
</p>
<p>L'information constituée par un fichier est soumise à un certain nombre
de droits d'accès. C'est ce qui fait que par exemple vous est la seule
personne autorisée à lire votre propre courrier électronique (en théorie,
l'administrateur système peut techniquement le faire, mais il ne le fait
évidemment pas). Pour plus de détails, consultez la page sur les
<a href="droits.html">droits d'accès</a>.
<p>L'information constituée par un fichier est soumise à un certain
nombre de droits d'accès. C'est ce qui fait que par exemple vous est
la seule personne autorisée à lire votre propre courrier électronique
(en théorie, l'administrateur système peut techniquement le faire,
mais il ne le fait évidemment pas). Pour plus de détails, consultez la
page sur les <a href="droits.html">droits d'accès</a>.
</p>
<p> Les commandes que vous entrez dans les <a
@ -113,6 +114,9 @@ href="shell.html">page</a> contient quelques notions de base sur le
<li>L'<a href="aide.html">aide en ligne</a> d'Unix : obtenir de l'aide
sur une commande ou un concept : pages de man, option <code>-h</code>,
pages info.</li>
<li><a href="place_disque.html">Place disque</a> : quelle taille fait
un fichier, son compte ou sa boîte aux lettres ? Combien de place
reste-t-il sur le disque ?</li>
<li><a href="communiquer.html">Autres utilisateurs</a> : pour obtenir
quelques informatiques sur d'autres utilisateurs ;</li>
<li><a href="jeux.html">Jeux</a> : tant que vous ne dérangez pas vos
@ -124,7 +128,7 @@ diverses...</li>
<div class="metainformation">
Auteur : Joël Riou. Dernière modification le
<date value="$Date: 2004-01-14 11:43:18 $" />.
<date value="$Date: 2004-02-05 19:38:22 $" />.
</div>
</body>