tuteurs.ens.fr/unix/droits.tml

389 lines
11 KiB
Text
Raw Normal View History

2002-11-22 16:47:02 +01:00
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Droits d'acc<63>s</title>
</head>
<body>
<h1>Les droits d'acc<63>s sous Unix</h1>
<p>
Qu'est-ce que ces <20><>droits d'acc<63>s<EFBFBD><73><EFBFBD>? C'est un mod<6F>le qui d<>crit,
pour chaque fichier ou chaque r<>pertoire, qui a le droit de lire,
ex<EFBFBD>cuter (ou traverser dans le cas d'un r<>pertoire) ou modifier. Sur
votre Mac ou PC Windows personnel, ces consid<69>rations ne sont
peut-<2D>tre pas tr<74>s importantes si vous <20>tes le seul utilisateur. Mais
c'est particuli<6C>rement important sous Unix, qui est un syst<73>me con<6F>u
pour <20>tre multi-utilisateurs.
</p>
2002-11-22 16:47:02 +01:00
<h2>Lire les droits</h2>
<p>
Chaque fichier a plusieurs propri<72>t<EFBFBD>s associ<63>es<65>: le
<em>propri<72>taire</em>, le <em>groupe propri<72>taire</em>, la date de
derni<EFBFBD>re modification, et les <em>droits d'acc<63>s</em>. On peut
examiner ces propri<72>t<EFBFBD>s gr<67>ce <20> 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<72>:
2002-11-22 16:47:02 +01:00
</p>
<pre>
<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
2002-11-22 16:47:02 +01:00
</pre>
<p class="continue">
Les permissions sont indiqu<71>es dans la colonne de gauche, suivant un
format bien particulier<65>:
</p>
<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 <20>l<EFBFBD>ments.
</p>
<h4>Type</h4>
2002-11-22 16:47:02 +01:00
<p>
Le premier caract<63>re du bloc de permissions indique le type du
fichier<EFBFBD>: <code>-</code> pour un fichier normal, <code>d</code> pour
un r<>pertoire. On trouve <20>galement parfois <code>l</code> pour les
liens symboliques, et d'autres choses plus exotiques.
2002-11-22 16:47:02 +01:00
</p>
<h4>Droits du propri<72>taire</h4>
2002-11-22 16:47:02 +01:00
<ul>
<li><strong>r</strong> ou <code>-</code><3E>: 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><3E>: droit d'<27>crire (w pour <i
lang="en">write</i>) dans le fichier</li>
<li><strong>x</strong> ou <code>-</code><3E>: droit d'ex<65>cuter (x pour <i
lang="en">execute</i>) le fichier.</li>
2002-11-22 16:47:02 +01:00
</ul>
<p>
Pour un r<>pertoire, les choses sont un peu diff<66>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>
<p>
Il existe d'autres types de droits plus exotiques, comme le bit setuid
(s) ou encore le <20><>sticky bit<69><74> (t). Si <20>a vous int<6E>resse, lisez la <a
href="&url.tuteurs;unix/aide.html">page de man</a> de
<code>chmod</code>.
</p>
<h4>Droits du groupe</h4>
2002-11-22 16:47:02 +01:00
<p>
Comme les droits du propri<72>taire, mais s'applique aux gens qui sont
dans le groupe propri<72>taire (voir ci-dessous sur les <a
href="#group">groupes</a>).
2002-11-22 16:47:02 +01:00
</p>
<h4>Droits des autres</h4>
2002-11-22 16:47:02 +01:00
<p>
Comme les droits du propri<72>taire, mais s'applique aux gens qui sont ni
le propri<72>taire, ni dans le groupe propri<72>taire.
</p>
<h3>Liens</h3>
<p>
Nombre de liens du fichier; un r<>pertoire en a au moins deux (<code>.</code> et
<code>..</code>). Un r<>pertoire qui contient 5 sous-r<>pertoires en a 7, etc.
</p>
<h3>Propri<72>taire</h3>
<p>
Le nom de login de la personne <20> qui appartient ce fichier. Seul le
propri<EFBFBD>taire peut changer les droits ou le groupe d'un fichier.
</p>
<h3><a name="group">Groupe propri<72>taire</a></h3>
2002-11-22 16:47:02 +01:00
<p>
Les groupes sont des ensembles d'utilisateurs qui sont fix<69>s par
l'administrateur du syst<73>me. Ils sont un moyen pour g<>rer un peu
finement les droits d'acc<63>s. En l'esp<73>ce, <20> l'ENS, les groupes n'ont
pas une tr<74>s grande importance. Votre groupe porte le nom de votre
sp<EFBFBD>cialit<EFBFBD> (<code>litt</code> pour les litt<74>raires, <code>bio</code>
pour les biologistes, etc.) assorti de votre promo. C'est la commande
<code>id</code> qui vous r<>v<EFBFBD>le le(s) groupe(s) auquel vous
appartenez<EFBFBD>:
</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.
2002-11-22 16:47:02 +01:00
</p>
<h3>Taille</h3>
<p>
Elle est indiqu<71>e en octets.
2002-11-22 16:47:02 +01:00
</p>
<h2>Modifier les droits d'acc<63>s</h2>
2002-11-22 16:47:02 +01:00
<p>
Il existe 4 commandes li<6C>es aux droits d'acc<63>s<EFBFBD>:
2002-11-22 16:47:02 +01:00
</p>
<ul>
<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<EFBFBD>taire d'un fichier ou r<>pertoire</li>
<li> <code>umask</code>, qui d<>finit les protections par d<>faut</li>
2002-11-22 16:47:02 +01:00
</ul>
<p>
Les commandes <code>chgrp</code> et <code>chown</code> servent surtout
<EFBFBD> l'administrateur du syst<73>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<74>s
pratique dans une utiisation courante.
</p>
<h3>Notation symbolique</h3>
<p>
Cette notation consiste <20> associer un ou plusieurs degr<67>s de
propri<EFBFBD>t<EFBFBD>, une action et un ou plusieurs types d'acc<63>s. On l'utilise
g<EFBFBD>n<EFBFBD>ralement pour ajouter ou retirer des permissions par rapport <20> 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<67> de propri<72>t<EFBFBD></th><th>Action</th><th>Type d'acc<63>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<6E>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> (<28>criture)</td>
</tr><tr>
<td><code>x</code> (ex<65>cution</td>
</tr>
</table>
</td>
</tr>
</table>
<h3>Quelques exemples</h3>
<h4>Prot<6F>ger un fichier</h4>
<p>
Ici, vous interdisez <20> tout autre que vous l'acc<63>s <20> votre fichier
(c'est ce qu'<27> l'ENS on appelle couramment le <20><>mode parano<6E><6F>).
</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<6F>ger un r<>pertoire</h4>
<p>
M<EFBFBD>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<69>: quand vous sauvegardez un fichier en
provenance de votre bo<62>te aux lettres, il est prot<6F>g<EFBFBD>. Pour permettre
aux autres l'acc<63>s au fichier<65>:
</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<65>cutable</h4>
<p>
Par d<>faut un fichier n'est pas un ex<65>cutable. Pour rendre ex<65>cutable
par tout le monde le joli script que vous venez d'<27>crire, faites
simplement<EFBFBD>:
</p>
<pre>
<span class="prompt">clipper ~ $</span> chmod +x script
</pre>
<h3>Notation num<75>rique</h3>
<p>
Cette notation est un peu plus complexe. Elle se fonde sur le principe
suivant<EFBFBD>: consid<69>rons un bloc de permissions,
<code>rw-r--r--</code>. Quand une lettre est pr<70>sente, <20>a veut dire
que l'acc<63>s est autoris<69>, quand elle est absente (-), il est
refus<EFBFBD>. On peut traduire ceci de fa<66>on binaire<72>:
</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<70>sentation num<75>rique de
<code>rw-r--r--</code> est 644. Cette valeur peut <20>tre indiqu<71>e
exactement <20> <code>chmod</code><3E>:
</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<63>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<EFBFBD>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<EFBFBD>s <20> qui que ce soit</td>
</tr><tr>
<td>rw-------</td><td>600</td><td>Fichiers</td><td>Fichier parano<6E>:
lecture et <20>criture r<>serv<72>es au propri<72>taire.</td>
</tr><tr>
<td>rw-r--r--</td><td>644</td><td>Fichiers</td><td>Standard<72>: tout le
monde peut lire le fichier mais vous <20>tes le seul <20> 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 <20>crire.</td>
</tr><tr>
<td>rwx------</td><td>700</td><td>R<>pertoires</td><td>R<>pertoire parano :
lecture, acc<63>s et <20>criture r<>serv<72>s au propri<72>taire.</td>
</tr><tr>
<td rowspan="2">rwxr-xr-x</td><td rowspan="2">755</td><td>Fichiers</td><td>Fichier
lisible et ex<65>cutable par tous, vous seul pouvez le modifier.</td>
</tr><tr>
<td>R<>pertoires</td><td>Standard : tout le monde peut acc<63>der au
r<EFBFBD>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<69>: tout
le monde peut y acc<63>der, lire le contenu et modifier celui-ci.</td>
</tr><tr>
<td>Fichiers</td><td>Ex<45>cutable public<69>: tout le
monde peut le lire, l'ex<65>cuter et le modifier.</td>
</tr>
</table>
2002-11-22 16:47:02 +01:00
<div class="metainformation">
Auteurs<EFBFBD>: <20>milia Robin, Nicolas George, Marie-Lan Nguyen. Derni<6E>re modification<6F>: <date
value="$Date: 2004-02-05 19:38:22 $" /> </div>
2002-11-22 16:47:02 +01:00
</body>
</html>