Différences entre les versions de « La commande chmod »

 
(38 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
== Description et syntaxe ==
+
[[Catégorie : Commandes]]
 +
<!-- Permission, permission, Permissions, permissions, Accès, accès -->
 +
<pre>
 +
chmod [options] <fichiers/répertoires>
 +
</pre>
 +
La [[Commandes_élémentaires|commande]] '''<tt>chmod</tt>''' permet de configurer l'accès aux fichiers et aux répertoires.
  
La commande <tt>chmod</tt> permet de modifier la protection des fichiers et des répertoires. Vous pouvez ainsi contrôler qui peut accéder à vos fichiers et de quelle manière (lecture, écriture).
+
Pour une liste exhaustive des options et des fonctionnalités, consultez le manuel de la commande ([[Commandes_élémentaires#man|<tt>man</tt>]] <tt>chmod</tt>).
  
Chaque fichier est soumis à 2 types de protection:
 
  
* par niveau;
+
__TOC__
* par accès.
 
  
Il y a 4 niveaux de protection:
+
== Description ==
  
* <tt>u</tt> pour ''user'', i.e. vous;
+
=== Ensembles d'usagers et types d'accès ===
* <tt>g</tt> pour ''group'', le groupe auquel vous appartenez;
+
La commande reconnaît 4 ensembles d'usagers&nbsp;:
* <tt>o</tt> pour ''other'', indiquant tous les usagers;
 
* <tt>a</tt> pour ''all'', désignant tout le monde (vous, le groupe et les autres).
 
  
Il existe plusieurs types d'accès, les plus communs étant:
+
* ''user'' (<tt>u</tt>), l'usager propriétaire (le créateur du fichier ou du répertoire);
 +
* ''group'' (<tt>g</tt>), le groupe de l'usager propriétaire (groupe propriétaire);
 +
* ''other'' (<tt>o</tt>), tous les usagers, sauf l'usager propriétaire et les membres de son groupe;
 +
* ''all'' (<tt>a</tt>), l'union des ensembles précédents.
  
* <tt>r</tt> pour ''read'', permission de lecture;
+
La commande permet 3 types d'accès aux fichiers (et répertoires)&nbsp;:
* <tt>w</tt> pour ''write'', permission d'écriture;
 
* <tt>x</tt> pour'' execute'', permission d'exécution.
 
  
Pour chaque fichier/répertoire, il y a donc 3 types d'accès pour chaque niveau. Un répertoire n'ayant aucune protection est présenté de la façon suivante:
+
* ''read'' (<tt>r</tt>), lecture;
 +
* ''write'' (<tt>w</tt>), écriture;
 +
* ''execute'' (<tt>x</tt>), exécution.
  
 +
Pour vérifier l'accès à un fichier ou à un répertoire, il suffit d'utiliser la commande [[Commandes_élémentaires#ls|<tt>ls</tt>]]&nbsp;:
 
<pre>
 
<pre>
drwxrwxrwx
+
ls -al <fichier/répertoire>
</pre>  
+
</pre>
 
+
Par exemple, la commande pourrait vous retourner
La première lettre '<tt>d</tt>' signifie qu'il s'agit d'un répertoire. Cette écriture est explicitée dans le schéma suivant:
 
<br/>
 
[[Fichier:Chmod0.png]]  
 
<br/>
 
Sur le réseau du DMS, un nouveau fichier créé par un usager aura les protections suivantes par défaut:
 
 
 
 
<pre>
 
<pre>
-rw-r--r--
+
-rw-r--r--. 1 USAGER etudmat 197 Dec 25 00:00 fichier
</pre>  
+
</pre>
 +
On apprend ainsi que <tt>USAGER</tt> est l'usager propriétaire du fichier et <tt>etudmat</tt>, son groupe. L'information à l'extrême gauche est organisée comme ci-dessous&nbsp;:
 +
[[Fichier:chmod.png]]
  
Ainsi, l'usager peut lire (<tt>r</tt>) et éditer le fichier (<tt>w</tt>) mais ne peut l'exécuter (l’absence de la permission <tt>x</tt> est signalée par un trait '-'). Les groupes et tous les autres usagers du réseau DMS ne peuvent que lire ce nouveau fichier. L'absence de la lettre '<tt>d</tt>' signifie simplement que cet objet n'est pas un répertoire.
+
Le caractère de gauche, <tt>d</tt>, n'apparaît que si l'objet considéré est un répertoire. Les 3 blocs qui suivent concernent, respectivement, l'accès de l'usager propriétaire, l'accès des membres du groupe propriétaire et l'accès des &laquo;&nbsp;autres&nbsp;&raquo;. Notons que l'absence de permission est signalée par un trait &laquo;&nbsp;-&nbsp;&raquo;.
  
Il est possible de vérifier les permissions des fichiers et répertoires avec la commande
+
Dans l'exemple précédent, on remarque que <tt>fichier</tt> n'est pas un répertoire et que <tt>USAGER</tt> a la permission de le lire et de le modifier, mais pas de l'exécuter. Les usagers du groupe <tt>etudmat</tt> et les &laquo;&nbsp;autres&nbsp;&raquo; peuvent seulement lire le fichier. Tous les nouveaux fichiers créés au DMS ont, par défaut, ces permissions.
  
 +
Les nouveaux répertoires affichent quant à eux les accès suivants&nbsp;:
 
<pre>
 
<pre>
ls -al
+
drwxr-xr-x.  2 USAGER etudmat  4096 Dec 25 00:00 répertoire
 
</pre>
 
</pre>
  
De plus, pour changer les accès à un fichier ou à un répertoire pour un niveau donné, on utilise la commande <tt>chmod</tt>. La syntaxe générale pour cette commande est:
+
=== Modification des permissions ===
  
 +
La commande <tt>chmod</tt> vous permet de modifier les accès à un fichier des différents ensembles d'usagers. Voici la syntaxe générale&nbsp;:
 
<pre>
 
<pre>
chmod [ugoa][+-=][rwx] nom_de_fichier_ou_répertoire
+
chmod [ugoa][+-=][rwx] <fichier/répertoire>
 
</pre>
 
</pre>
  
=== Exemples ===
+
==== Exemples ====
 
 
La commande
 
  
 
<pre>
 
<pre>
 
chmod a-wx fichier.tex
 
chmod a-wx fichier.tex
 
</pre>
 
</pre>
 
+
Retire à tous les usagers la possibilité de modifier (écrire) et d'exécuter <tt>fichier.tex</tt>.
retire à tous les usagers la possibilité de modifier (écrire) et d'exécuter ce fichier. La ligne
 
  
 
<pre>
 
<pre>
 
chmod o+rw gaffe.txt
 
chmod o+rw gaffe.txt
 
</pre>
 
</pre>
 
+
Ajoute la permission aux usagers &laquo;&nbsp;autres&nbsp;&raquo; de lire et modifier <tt>gaffe.txt</tt> (ceci n'est '''pas''' conseillé!).
ajoute la permission aux autres usagers de lire et modifier ce fichier (ce n'est pas à conseiller!). Le dernier exemple
 
  
 
<pre>
 
<pre>
chmod u=r Final
+
chmod u=r final.txt
 
</pre>
 
</pre>
 +
L'usager propriétaire n'est autorisé qu'à lire le fichier <tt>final.txt</tt>.
  
autorise l'usager à la lecture seulement du fichier <tt>Final</tt> à l'usager.
+
En bref, le symbole &laquo;&nbsp;<tt>=</tt>&nbsp;&raquo; sert à ''fixer'' le type d'accès d'un ensemble d'usagers alors que les symboles &laquo;&nbsp;<tt>+</tt>&nbsp;&raquo; et &laquo;&nbsp;<tt>-</tt>&nbsp;&raquo; servent, respectivement, à ''ajouter'' et à ''retirer'' un accès.
 
 
En bref, le symbole '<tt>=</tt>' sert à ''fixer'' le type d'accès d'un niveau alors que les symboles '<tt>+</tt>' et '<tt>-</tt>' servent, respectivement, à ''ajouter'' et à ''retirer'' un type d'accès d'un niveau.
 
 
 
=== Syntaxe chiffrée ===
 
 
 
Il existe une autre syntaxe de <tt>chmod</tt> utilisant une valeur numérique des niveaux et des types d'accès. Par exemple,
 
 
 
<pre>
 
chmod ug=rw toto.txt
 
</pre>
 
  
est équivalent à
+
==== Syntaxe chiffrée ====
  
 +
La syntaxe chiffrée peut être utilisée pour régler d'un trait l'accès de tous les ensembles d'usagers. Par exemple, la commande
 
<pre>
 
<pre>
chmod 660 toto.txt
+
chmod 664 fichier.txt
 
</pre>  
 
</pre>  
 
+
est équivalente à  
Cette syntaxe 'chiffrée'' ne peut servir qu'à fixer les d'accès de tous les niveaux d'un seul trait: il n'est pas possible de l'utiliser pour ajouter ou retirer un accès à un niveau. Le premier chiffre donne les accès de l'usager, le deuxième les accès du groupe et, le troisième, les accès des ''autres''. La valeur de chaque chiffre est la somme d'un ou plusieurs chiffres correspondant à des accès différents:
 
 
 
* <tt>4</tt>: lecture
 
* <tt>2</tt>: écriture
 
* <tt>1</tt>: exécution
 
* <tt>0</tt>: aucun
 
 
 
Pour plus d'information sur la commande <tt>chmod</tt>, démarrez un terminal de commandes, puis entrez la commande
 
 
<pre>
 
<pre>
man chmod
+
chmod ug=rw fichier.txt
 +
chmod o=r fichier.txt
 
</pre>
 
</pre>
 +
Le premier chiffre de la valeur numérique fixe l'accès de l'usager propriétaire, le deuxième fixe l'accès du groupe propriétaire et le dernier fixe l'accès des &laquo;&nbsp;autres&nbsp;&raquo;. Chaque chiffre est la somme d'un ou plusieurs chiffres correspondant à des accès différents&nbsp;:
 +
 +
* <tt>4</tt>&nbsp;: lecture
 +
* <tt>2</tt>&nbsp;: écriture
 +
* <tt>1</tt>&nbsp;: exécution
 +
* <tt>0</tt>&nbsp;: aucun
  
 
== Voir aussi ==
 
== Voir aussi ==
  
 
=== Articles connexes ===
 
=== Articles connexes ===
*[[Logiciels|Logiciels au DMS]]
+
 
*[[Quelques_commandes_élémentaires|Commandes UNIX élémentaires]]
+
*[[Commandes_élémentaires|Commandes élémentaires]]
*[[Quelques_commandes_élémentaires#La_commande_chgrp|Commande <tt>chgrp</tt>]]
+
*[[Commandes_élémentaires#chgrp|<tt>chgrp</tt>]]
*[[Page_web_personnelle|Création de votre page web personnelle au DMS]]
+
*[[Commandes_élémentaires#chown|<tt>chown</tt>]]

Version actuelle datée du 19 juin 2013 à 11:03

chmod [options] <fichiers/répertoires>

La commande chmod permet de configurer l'accès aux fichiers et aux répertoires.

Pour une liste exhaustive des options et des fonctionnalités, consultez le manuel de la commande (man chmod).


Description

Ensembles d'usagers et types d'accès

La commande reconnaît 4 ensembles d'usagers :

  • user (u), l'usager propriétaire (le créateur du fichier ou du répertoire);
  • group (g), le groupe de l'usager propriétaire (groupe propriétaire);
  • other (o), tous les usagers, sauf l'usager propriétaire et les membres de son groupe;
  • all (a), l'union des ensembles précédents.

La commande permet 3 types d'accès aux fichiers (et répertoires) :

  • read (r), lecture;
  • write (w), écriture;
  • execute (x), exécution.

Pour vérifier l'accès à un fichier ou à un répertoire, il suffit d'utiliser la commande ls :

ls -al <fichier/répertoire>

Par exemple, la commande pourrait vous retourner

-rw-r--r--. 1 USAGER etudmat 197 Dec 25 00:00 fichier

On apprend ainsi que USAGER est l'usager propriétaire du fichier et etudmat, son groupe. L'information à l'extrême gauche est organisée comme ci-dessous : Chmod.png

Le caractère de gauche, d, n'apparaît que si l'objet considéré est un répertoire. Les 3 blocs qui suivent concernent, respectivement, l'accès de l'usager propriétaire, l'accès des membres du groupe propriétaire et l'accès des « autres ». Notons que l'absence de permission est signalée par un trait « - ».

Dans l'exemple précédent, on remarque que fichier n'est pas un répertoire et que USAGER a la permission de le lire et de le modifier, mais pas de l'exécuter. Les usagers du groupe etudmat et les « autres » peuvent seulement lire le fichier. Tous les nouveaux fichiers créés au DMS ont, par défaut, ces permissions.

Les nouveaux répertoires affichent quant à eux les accès suivants :

drwxr-xr-x.  2 USAGER etudmat  4096 Dec 25 00:00 répertoire

Modification des permissions

La commande chmod vous permet de modifier les accès à un fichier des différents ensembles d'usagers. Voici la syntaxe générale :

chmod [ugoa][+-=][rwx] <fichier/répertoire>

Exemples

chmod a-wx fichier.tex

Retire à tous les usagers la possibilité de modifier (écrire) et d'exécuter fichier.tex.

chmod o+rw gaffe.txt

Ajoute la permission aux usagers « autres » de lire et modifier gaffe.txt (ceci n'est pas conseillé!).

chmod u=r final.txt

L'usager propriétaire n'est autorisé qu'à lire le fichier final.txt.

En bref, le symbole « = » sert à fixer le type d'accès d'un ensemble d'usagers alors que les symboles « + » et « - » servent, respectivement, à ajouter et à retirer un accès.

Syntaxe chiffrée

La syntaxe chiffrée peut être utilisée pour régler d'un trait l'accès de tous les ensembles d'usagers. Par exemple, la commande

chmod 664 fichier.txt

est équivalente à

chmod ug=rw fichier.txt
chmod o=r fichier.txt

Le premier chiffre de la valeur numérique fixe l'accès de l'usager propriétaire, le deuxième fixe l'accès du groupe propriétaire et le dernier fixe l'accès des « autres ». Chaque chiffre est la somme d'un ou plusieurs chiffres correspondant à des accès différents :

  • 4 : lecture
  • 2 : écriture
  • 1 : exécution
  • 0 : aucun

Voir aussi

Articles connexes


La dernière modification de cette page a été faite le 19 juin 2013 à 11:03.