Newer
Older
cours-unix-shell / output / commandes / droits.html
<!DOCTYPE html>
<html>

<head>
    <title></title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <header>
        <h1></h1>
        <nav>
            <ul>
                <li><a href="/output/README.html">Accueil</a></li>
                <li><a href="/output/unix/README.html">UNIX</a></li>
                <li><a href="/output/bases/README.html">Bases</a></li>
                <li><a href="/output/commandes/README.html">Commandes</a></li>
                <li><a href="/output/shell/README.html">Shell</a></li>
                <li><a href="/output/sed/README.html">Sed</a></li>
                <li><a href="/output/make/README.html">Make</a></li>
            </ul>
        </nav>
    </header>

    <div class="content">
        <h1 id="gestion-des-droits">Gestion des droits</h1>
        <h2 id="ll-alias-de-ls--alf">ll (alias de ls -alF)</h2>
        <p>Cette commande permet d'obtenir la description complète d'un répertoire, y compris les fichiers et répertoires cachés (qui commencent par un point) :</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="ex">ll</span></code></pre></div>
        <p>L'affichage résultant se lit ligne par ligne, par exemple :</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="ex">drwxrwxr-x</span>  3 houdry   dps   1024 Apr 28 15:28 ./
        <span class="ex">drwxr-xr-x</span> 16 houdry   dps    512 Apr 18 16:19 ../
        <span class="ex">-rw-rw-r--</span>  1 parmentf dilib 2848 Apr 25 11:08 Make.gif
        <span class="ex">-rw-rw-r--</span>  1 parmentf dilib 2631 Apr 25 11:08 Shell.gif
        <span class="ex">-rw-rw-r--</span>  1 houdry   dps   7817 Apr 25 11:44 redirPipes.html
        <span class="ex">-rw-rw-r--</span>  1 parmentf dilib 2405 Apr 24 17:36 make.html
        <span class="ex">-rwxrwxr--</span>  1 houdry   dps    235 Apr 24 17:01 exotp.sh*</code></pre></div>
        <p>De nombreux éléments d'information sont visibles avec une commande de listing long. Ils sont au nombre de sept, avec dans l'ordre des colonnes :</p>
        <ul>
        <li>la liste des droits sur 10 positions (ex.: drwxrwxrwx)</li>
        <li>position 1 : le type d'entrée, fichier ou répertoire</li>
        <li>positions 2-4 : les droits de l'utilisateur (user)</li>
        <li>positions 5-7 : les droits du groupe de l'utilisateur</li>
        <li><p>positions 8-10: les droits des autres groupes | | | | --- | :------------------------------------------- | | d | entrée répertoire | | - | entrée fichier | | r | lecture autorisée | | w | écriture autorisée (et écrasement) | | x | fichier exécutable ou répertoire parcourable |</p></li>
        <li>la taille en blocs de l'entrée (peu utile pour nous)</li>
        <li>le nom du propriétaire (user unix)</li>
        <li>le groupe du propriétaire attaché à l'entrée</li>
        <li>la taille de l'entrée en octets</li>
        <li>les date et heure de la création ou de la dernière mise à jour</li>
        <li><p>le nom du répertoire ou du fichier</p></li>
        </ul>
        <blockquote>
        <p>💡 l'option <code>-h</code> vous donnera la taille de l'entrée dans un format plus... humain.</p>
        </blockquote>
        <h2 id="who-whoami-id">who, whoami, id</h2>
        <p>Un utilisateur unix est identifié par deux choses :</p>
        <ol type="1">
        <li>son code utilisateur (ex.: parmentf ou houdry)</li>
        <li>son ou ses groupes (ex.: dps)</li>
        </ol>
        <p>Différentes commandes permettent de retrouver ces informations.</p>
        <p>Identification de l'utilisateur courant :</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">whoami</span></code></pre></div>
        <p>Identification des utilisateurs du système :</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">who</span></code></pre></div>
        <p>Affichage des code et groupe de l'utilisateur :</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">id</span></code></pre></div>
        <h2 id="umask">umask</h2>
        <p>Cette commande permet de paramétrer les droits rwx qui vont servir pour la création des nouveaux fichiers. Deux syntaxes sont possibles, celles qui suivent sont équivalentes et standard :</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="bu">umask</span> a=rx,ug+w
        <span class="bu">umask</span> 002</code></pre></div>
        <p>Les droits des 3 entités propriétaire (<code>u</code>), groupe du propriétaire (<code>g</code>) et autres groupes (<code>o</code>) doivent être précisés :</p>
        <ul>
        <li><code>a=rx</code> pour mettre les droits <code>r</code> et <code>x</code> seulement pour tous les groupes (<code>a</code>=<code>ugo</code>, all)</li>
        <li><code>ug+w</code> pour ajouter le droit <code>w</code> aux groupes <code>u</code> et <code>g</code> seulement</li>
        <li><code>002</code> est un masque en octal</li>
        <li><code>002</code> est la négation de l'équivalent à <code>a=rx,ug+w</code> (=<code>775</code>) - voir tableau qui suit</li>
        </ul>
        <h2 id="chmod">chmod</h2>
        <p>Cette commande permet de modifier les droits d'un fichier ou d'un répertoire.<br />
        Pour pouvoir le faire, il faut en être propriétaire.<br />
        Là aussi, il y a deux façons d'utiliser cette commande : avec les groupes <code>ugoa</code> et les droits <code>rwx</code> ou bien avec un profil octal (directement, sans prendre sa négation comme avec <code>umask</code>).<br />
        Le tableau suivant résume les cas possibles :</p>
        <table>
        <thead>
        <tr class="header">
        <th style="text-align: center;">lettres</th>
        <th style="text-align: center;">binaire</th>
        <th style="text-align: center;">octal</th>
        </tr>
        </thead>
        <tbody>
        <tr class="odd">
        <td style="text-align: center;"><code>---</code></td>
        <td style="text-align: center;">000</td>
        <td style="text-align: center;">0</td>
        </tr>
        <tr class="even">
        <td style="text-align: center;"><code>--x</code></td>
        <td style="text-align: center;">001</td>
        <td style="text-align: center;">1</td>
        </tr>
        <tr class="odd">
        <td style="text-align: center;"><code>-w-</code></td>
        <td style="text-align: center;">010</td>
        <td style="text-align: center;">2</td>
        </tr>
        <tr class="even">
        <td style="text-align: center;"><code>-wx</code></td>
        <td style="text-align: center;">011</td>
        <td style="text-align: center;">3</td>
        </tr>
        <tr class="odd">
        <td style="text-align: center;"><code>r--</code></td>
        <td style="text-align: center;">100</td>
        <td style="text-align: center;">4</td>
        </tr>
        <tr class="even">
        <td style="text-align: center;"><code>r-x</code></td>
        <td style="text-align: center;">101</td>
        <td style="text-align: center;">5</td>
        </tr>
        <tr class="odd">
        <td style="text-align: center;"><code>rw-</code></td>
        <td style="text-align: center;">110</td>
        <td style="text-align: center;">6</td>
        </tr>
        <tr class="even">
        <td style="text-align: center;"><code>rwx</code></td>
        <td style="text-align: center;">111</td>
        <td style="text-align: center;">7</td>
        </tr>
        </tbody>
        </table>
        <p>Par exemple, pour positionner les droits d'un fichier <code>File</code> à <code>rwxr-xr--</code> :</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">chmod</span> 754 [File]
        <span class="fu">chmod</span> u=rwx,g=rx,o=r [File]</code></pre></div>
        <p>Pour modifier des droits positionnés à <code>r--r----x</code> en <code>rwxrw-r--</code>, on peut aussi écrire :</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">chmod</span> ug+w,u+x,a+r,o-x [File]</code></pre></div>
        <h2 id="chgrp">chgrp</h2>
        <p>Cette commande permet de changer le groupe attaché à un fichier ou à un répertoire.<br />
        Par exemple, un fichier <code>File</code> est lié au groupe <code>dps</code> et il faut le changer pour le lier au groupe <code>dilib</code> (attention, il faut que le <em>user</em> appartienne aux deux groupes) :</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">chgrp</span> veille [File]</code></pre></div>
        <h2 id="newgrp">newgrp</h2>
        <p>Cette commande permet de changer le groupe d'appartenance de l'utilisateur.<br />
        Cela peut être nécessaire pour accéder à des fichiers dont l'emploi est limité à certains groupes (par ex., <code>dilib</code> par rapport à <code>dps</code>).<br />
        Pour changer de groupe, il faut appartenir aux deux (l'ancien et le nouveau).</p>
        <p>À partir du moment où cette commande est lancée, les fichiers et répertoires créés le seront sous ce nouveau groupe.</p>
        <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="ex">newgrp</span> veille</code></pre></div>
        <p><a href="./README.html">Précédent</a> - <a href="./compression.html">Suivant</a></p>
    </div>

    <footer>
        <p>&copy; CNRS 2023</p>
    </footer>
</body>

</html>