logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:systeme:chmod [26/10/2013 13:18]
MicP [TP 1]
doc:systeme:chmod [08/11/2023 22:15] (Version actuelle)
TyZef [TP 2]
Ligne 2: Ligne 2:
  
   * Objet : chmod   * Objet : chmod
-  * Niveau requis : {{tag>​débutant}}+  * Niveau requis : {{tag>​débutant ​avisé}}
   * Commentaires : //Modifier les permissions des fichiers. //   * Commentaires : //Modifier les permissions des fichiers. //
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
   * Suivi :    * Suivi : 
-    * Création par MaTTuX_ <date> //Pffff... On n'​était même pas né alors !// +    * Création par [[user>MaTTuX_]] le //Pffff... On n'​était même pas né alors !// 
-    * Testé par smolski le 26-10-2013+    * Testé par [[user>smolski]] le 26-10-2013
   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=999 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=999 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
-=== Nota === 
- 
-Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! 
  
 ===== Intro ===== ===== Intro =====
  
-La commande chmod permet de modifier les permissions des fichiers. \\+La commande ​''​chmod'' ​permet de modifier les permissions ​aux différents types d'​accès (rwx) des fichiers ​(et répertoire) indépendamment pour le propriétaire,​ le groupe ou les autres utilisateurs. \\
 Je vais vous expliquer deux manières de les modifier, chacun sa méthode, moi j'ai commencé par la première méthode, puis maintenant je le fais avec les deux sans problème. Je vais vous expliquer deux manières de les modifier, chacun sa méthode, moi j'ai commencé par la première méthode, puis maintenant je le fais avec les deux sans problème.
  
Ligne 28: Ligne 25:
  
 Dans cette méthode je vais vous montrer comment modifier par les lettres U G O et R W X pour un rappel aller voir le wiki **[[:​doc:​systeme:​droits-unix|A savoir]]** . \\ Dans cette méthode je vais vous montrer comment modifier par les lettres U G O et R W X pour un rappel aller voir le wiki **[[:​doc:​systeme:​droits-unix|A savoir]]** . \\
-Bon passons aux choses sérieuses, je veux rendre un fichier exécutable,​ pour cela je vérifie les droits grâce a  la commande ​ls -l((voir : [[:​doc:​systeme:​ls| ​commande de listage ​ls]])) sur le fichier php dans mon répertoire.+Bon passons aux choses sérieuses, je veux rendre un fichier exécutable,​ pour cela je vérifie les droits grâce a  la commande ​**[[:​doc:​systeme:​ls | ls -l]]** sur le fichier php dans mon répertoire.
  
 <code user>ls -l php</​code>​ <code user>ls -l php</​code>​
-<code bash>​-rw-r--r-- 1 mattux users 92 avr 20 23:26 php</code>+<file config retour de la commande>​-rw-r--r-- 1 mattux users 92 avr 20 23:26 php</file>
  
 Pour le rendre exécutable avec une petite vérification en même temps je ferai :  Pour le rendre exécutable avec une petite vérification en même temps je ferai : 
Ligne 37: Ligne 34:
 <code user>​chmod u+x php</​code>​ <code user>​chmod u+x php</​code>​
 <code user>ls -l php</​code>​ <code user>ls -l php</​code>​
-<code bash>​-rwxr--r-- 1 mattux users 92 avr 20 23:26 php</code>+<file config retour de la commande>​-rwxr--r-- 1 mattux users 92 avr 20 23:26 php</file>
  
-Voila je l'ai rendu exécutable juste pour l'​user,​ maintenant vous pouvez permettre au groupe et aux autres ​(g et o)d'​avoir le droit d'​écriture :+Voila je l'ai rendu exécutable juste pour l'​user,​ maintenant vous pouvez permettre au groupe et aux autres d'​avoir le droit d'​écriture :
  
 <code user>​chmod go+w  php</​code>​ <code user>​chmod go+w  php</​code>​
 <code user>ls -l php</​code>​ <code user>ls -l php</​code>​
-<code bash>​-rwxrw-rw- 1 mattux users 92 avr 20 23:26 php</code>+<file config retour de la commande>​-rwxrw-rw- 1 mattux users 92 avr 20 23:26 php</file>
  
 Voilà je n'ai pas mis U pour l'user car il avait déjà le droit d'​écriture. Voilà je n'ai pas mis U pour l'user car il avait déjà le droit d'​écriture.
Ligne 51: Ligne 48:
  
 <code user>​chmod ugo-wx php</​code>​ <code user>​chmod ugo-wx php</​code>​
 +Ou encore avec "​a"​ signifiant "​All",​ tous :
 +<code user>​chmod a-wx php</​code>​
 Ou, plus simplement : Ou, plus simplement :
 <code user>​chmod -wx php</​code>​ <code user>​chmod -wx php</​code>​
 +Ce qui donne :
 <code user>ls -l php</​code>​ <code user>ls -l php</​code>​
-<code bash>​-r--r--r-- 1 mattux users 92 avr 20 23:26 php</code>+<file config retour de la commande>​-r--r--r-- 1 mattux users 92 avr 20 23:26 php</file>
  
 ===== Option t ===== ===== Option t =====
Ligne 94: Ligne 94:
 Dans cette méthode on fera les modifications par des chiffres 4, 2 et 1, n'ayez pas peur c'est très simple, je vais reprendre les mêmes exemple que la Méthode 1, mais pour commencer je dois vous expliquer comment fonctionne cette méthode. Dans cette méthode on fera les modifications par des chiffres 4, 2 et 1, n'ayez pas peur c'est très simple, je vais reprendre les mêmes exemple que la Méthode 1, mais pour commencer je dois vous expliquer comment fonctionne cette méthode.
  
-Une autre manière de représenter ces droits est sous **forme binaire** grâce à une **clef numérique** fondée sur la correspondance entre : +Une autre manière de représenter ces droits est sous **forme binaire** grâce à une **clef numérique** fondée sur la correspondance entre : \\ 
- +une expression **binaire** = un nombre **octal** = une notation
-une expression **binaire** = un nombre **décimal** = une notation+
  
 Soit : Soit :
-  * 000 = 0 = - - - +  * 000 = 0 = -%%-%%
-  * 001 = 1 = - - x (exécution) +  * 001 = 1 = -%%-%%x (exécution) 
-  * 010 = 2 = - w - (écriture) +  * 010 = 2 = -w- (écriture) 
-  * 011 = 3 = - w x +  * 011 = 3 = -wx 
-  * 100 = 4 = r - - (lecture) +  * 100 = 4 = r-%%-%%(lecture) 
-  * 101 = 5 = r - x +  * 101 = 5 = r-x 
-  * 110 = 6 = r w +  * 110 = 6 = rw
-  * 111 = 7 = r w x +  * 111 = 7 = rwx
 Il suffit donc de déclarer un chiffre et un seul entre 0 et 7  correspondant à toute la séquence en notation (r w x) et de l'​attribuer à chacune des catégories d'​utilisateur user, group, others (u, g, o). Il suffit donc de déclarer un chiffre et un seul entre 0 et 7  correspondant à toute la séquence en notation (r w x) et de l'​attribuer à chacune des catégories d'​utilisateur user, group, others (u, g, o).
  
 Exemples : Exemples :
-  * 777 = r w x r w x r w x = u g o peuvent tous lire + écrire + exécuter. +  * 777 = rwxrwxrwx ​= u g o peuvent tous lire + écrire + exécuter. 
-  * 605 = r w - - - - r - x = u peut lire + écrire g rien faire et o lire + exécuter. +  * 605 = rw-%%--%%-r-x = u peut lire + écrire g rien faire et o lire + exécuter. 
-  * 644 = r w - r - - r - - = u peut lire + écrire g  lire et o lire. +  * 644 = rw-r-%%-%%r-%%-%%= u peut lire + écrire g  lire et o lire. 
-  * 666 = r w r w r w - = u g o peuvent tous lire + écrire. Aucun ne peut exécuter.+  * 666 = rw-rw-rw- = u g o peuvent tous lire + écrire. Aucun ne peut exécuter.
  
 Une astuce permet d'​associer rapidement une valeur décimale à la séquence de droits souhaitée. Il suffit d'​attribuer les valeurs suivantes pour chaque type de droit. Une astuce permet d'​associer rapidement une valeur décimale à la séquence de droits souhaitée. Il suffit d'​attribuer les valeurs suivantes pour chaque type de droit.
  
 Le droit de : Le droit de :
-  * lecture ( r ) correspond ​à +  * lecture ( r ) correspond ​au chiffre **4** 
-  * écriture ( w ) correspond à 2 +  * écriture ( w ) correspond à **2** 
-  * exécution ( x ) correspond à 1 +  * exécution ( x ) correspond à **1** 
- +On additionne ces valeurs selon qu'on veuille ou non attribuer le droit correspondant pour chacune des catégories (**u** (**u**tilisateur)**g** (**g**roupe) et **o** **o**ther((en français : autre)) ​).
-On additionne ces valeurs selon qu'on veuille ou non attribuer le droit correspondant pour chacune des catégories (u, go).+
  
 Ainsi : Ainsi :
   * rwx = 7 (4+2+1),   * rwx = 7 (4+2+1),
   * r-x = 5 (4+1) et   * r-x = 5 (4+1) et
-  * r-- = 4. +  * r-%%-%% = 4.
 Donne en séquences de droits complètes : Donne en séquences de droits complètes :
-  * (rwxr-xr--) = 754.+  * (rwxr-xr-%%-%%) = 754. 
 +<​note>​**Pour briller en société, comment convertir un nombre binaire en nombre octal :** \\ 
 +Il s'agit donc de passer de la base **2** (où chaque chiffre peut prendre 2 valeurs, //0// ou //1//), à la base **8** (où chaque chiffre peut prendre 8 valeurs, de //0// à //7//). 
 + 
 +Mais pour commencer, on va commencer par une autre base, la base **10** (où chaque chiffre peut prendre, //je vous le donne en mille...// 10 valeurs, de //0// à //9// :-p ). \\ 
 +Vous savez tous décomposer un nombre en base **10**. Par exemple **103**. 
 + 
 +Le premier chiffre à droite, //3// a le rang **0**, celui juste à sa gauche, //0// a le rang **1**, le suivant vers la gauche, //1// a le rang **2**, et ainsi de suite... \\ 
 +103 = 1 x 100 + 0 x 10 + 3 x 1 \\ 
 +On peut aussi l'​écrire comme ça, si on se rappelle que \\ //​n'​importe quoi//<​sup>​1</​sup>​ = //​n'​importe quoi// \\ 
 +et que //​n'​importe quoi//<​sup>​0</​sup>​ = 1 : \\ 
 +103 = 1 x 10<​sup>​2</​sup>​ + 0 x 10<​sup>​1</​sup>​ + 3 x 10<​sup>​0</​sup>​ 
 + 
 +On remarque que la décomposition consiste à multiplier la valeur du chiffre du rang par la base élevée à la puissance du rang, et d'​additionner toutes ces mutiplications :-) 
 + 
 +On va faire exactement pareil pour décomposer un nombre en base **2**. \\ 
 +Si on dit que //n// est le rang, on multiplie la valeur du chiffre du rang par 2<​sup>​n</​sup>,​ et on additionne le résultat de toute ces multiplications.  
 + 
 +Par exemple : \\ 
 +010 = 0 x 2<​sup>​2</​sup>​ + 1 x 2<​sup>​1</​sup>​ + 0 x 2<​sup>​0</​sup>​ = 0 x 4 + 1 x 2 + 0 x 1 = 2 \\ 
 +101 = 1 x 2<​sup>​2</​sup>​ + 0 x 2<​sup>​1</​sup>​ + 1 x 2<​sup>​0</​sup>​ = 1 x 4 + 0 x 2 + 1 x 1 = 5 
 + 
 +//Oui, mais tu as dis qu'on allait apprendre à convertir en octal, pas en décimal :-?// \\  
 +Et bien, puisqu'​on converti un nombre binaire composé d'​uniquement 3 chiffres, ça ne change rien. 
 + 
 +//Pourquoi ? // \\ 
 +Quel est le plus grand nombre binaire à 3 chiffres possible ? \\ 
 +**111** \\ 
 +111 = 1 x 2<​sup>​2</​sup>​ + 1 x 2<​sup>​1</​sup>​ + 1 x 2<​sup>​0</​sup>​ = 1 x 4 + 1 x 2 + 1 x 1 = **7** \\ 
 +Et **7**, en octal ou en décimal, ça vaut toujours **7** ;-) 
 +</​note>​
  
 C'est une manière directe (et moins verbeuse, ATTENTION aux erreurs !) d'​attribuer les droits et de les écrire sous cette forme en utilisant le code à 3 chiffres résultant. C'est une manière directe (et moins verbeuse, ATTENTION aux erreurs !) d'​attribuer les droits et de les écrire sous cette forme en utilisant le code à 3 chiffres résultant.
Ligne 137: Ligne 163:
 Exemple pour un fichier :    ​ Exemple pour un fichier :    ​
 <code user>​chmod 754 /​chemin/​du/​fichier/​test.txt</​code>​ <code user>​chmod 754 /​chemin/​du/​fichier/​test.txt</​code>​
- 
 ''/​chemin/​du/​fichier/​test.txt''​ étant un fichier imaginaire destiné à illustrer l'​exemple... :-) ''/​chemin/​du/​fichier/​test.txt''​ étant un fichier imaginaire destiné à illustrer l'​exemple... :-)
  
Ligne 146: Ligne 171:
 <code user>​chmod -R 754 /​chemin/​du/​repertoire/​test</​code>​ <code user>​chmod -R 754 /​chemin/​du/​repertoire/​test</​code>​
  
-Il est d'​usage précautionneux de SYSTEMATIQUEMENT vérifier par+Il est d'​usage précautionneux de SYSTEMATIQUEMENT vérifier par :
 <code user>ls -al /​chemin/​du/​repertoire/</​code>​ <code user>ls -al /​chemin/​du/​repertoire/</​code>​
- +que nous avons bien obtenu ce que nous voulions modifier... C'est beaucoup, beaucoup de temps d'​gagné ! LOL
-que nous avons bien obtenu ce que nous voulions modifier, répertoire par répertoire... C'est beaucoup, beaucoup de temps d'​gagné ! LOL+
  
 ===== Droits spéciaux - SUID ===== ===== Droits spéciaux - SUID =====
Ligne 157: Ligne 181:
 </​note>​ </​note>​
  
-Directement inspiré de : +Ce droit demande une connaissance préalable de **tous les droits** de bases, leur **fonctionnement**, leur **manipulation**,​ ainsi que de la commande de listage **ls**. \\
- +
-[[http://​www.ac-creteil.fr/​reseaux/​systemes/​linux/​debian/​deb-tp-droits.html | Les TP de AC - Creteil]] +
- +
-Ce droit demande une connaissance préalable de **tous les droits** de bases, leur **fonctionnnement**, leur **manipulation**,​ ainsi que de la commande de listage **ls**. \\+
 Si vous ne comprenez pas cette litanie, revoyez les commandes [[CHMOD]] [[CHOWN]] [[LS]] et concert... Si vous ne comprenez pas cette litanie, revoyez les commandes [[CHMOD]] [[CHOWN]] [[LS]] et concert...
  
Ligne 170: Ligne 190:
 Exemple de fichier où SUID s'​applique nécessairement : Exemple de fichier où SUID s'​applique nécessairement :
  
-sous root //​lister// ​dans un terminal :+Saisir ​dans un terminal :
 <code user>ls -l /​etc/​shadow</​code>​ <code user>ls -l /​etc/​shadow</​code>​
-<code bash>​-rw-r----- ​ root root  shadow</code>+<file config retour de la commande>​-rw-r----- ​ root root  shadow</file>
 Les droits de réalisation (rw) dans le fichier **shadow** sont limités à u=root exclusivement. Les droits de réalisation (rw) dans le fichier **shadow** sont limités à u=root exclusivement.
  
 et : et :
 <code user>ls -l /​usr/​bin/​passwd</​code>​ <code user>ls -l /​usr/​bin/​passwd</​code>​
-<code bash>​-rxsr-xr-x ​ root  root /​usr/​bin/​passwd</​code>+<file config retour de la commande>​-rxsr-xr-x ​ root  root /​usr/​bin/​passwd</​file>
  
 SUID, en s'​intégrant (rx**s**r) dans le fichier intermédiaire **passwd** où : SUID, en s'​intégrant (rx**s**r) dans le fichier intermédiaire **passwd** où :
Ligne 189: Ligne 209:
 //Il était une fois//... 8-o //Il était une fois//... 8-o
  
-SUID permet la réalisation d'une commande d'​exécution (x) à partir d'un utilisateur-lambda,​ //via// un fichier d'​utilisateur exclusif (u = root par exemple...)//​vers//​ un fichier de réalisation finale de propriété exclusive identique __sans attribuer des droits permanents__ hors de la commande présentée !+SUID permet la réalisation d'une commande d'​exécution (x) à partir d'un utilisateur-lambda,​ //via// un fichier d'​utilisateur exclusif (u = root par exemple...) //vers// un fichier de réalisation finale de propriété exclusive identique __sans attribuer des droits permanents__ hors de la commande présentée !
  
 En effet, le droit SUID est un droit //​TEMPORAIRE//​ de fichier. \\ En effet, le droit SUID est un droit //​TEMPORAIRE//​ de fichier. \\
Ligne 206: Ligne 226:
 === Exemple === === Exemple ===
  
-Sous root listez((doc:​systeme:​ls)) ​dans un terminal : +Saisir ​dans un terminal : 
-<​code ​root>ls -l /​etc/​shadow</​code>​ +<​code ​user>ls -l /​etc/​shadow</​code>​ 
-<code bash>​-rw-r----- ​ root root  shadow</code>+<file config retour de la commande>​-rw-r----- ​ root root  shadow</file>
  
 Ce qui indique toutes les limites de ce fichier réservé à root. Sécurité maxi ! Ce qui indique toutes les limites de ce fichier réservé à root. Sécurité maxi !
  
-Puis, listez ​:+Puis saisir ​:
 <code user>ls -l /​usr/​bin/​passwd</​code>​ <code user>ls -l /​usr/​bin/​passwd</​code>​
-<code bash>​-rxsr-xr-x ​ root  root /​usr/​bin/​passwd</​code>+<file config retour de la commande>​-rxsr-xr-x ​ root  root /​usr/​bin/​passwd</​file>
  
 Ici, le droit sur le fichier passwd est accordé à tous les exécutants lambda (valeur x pour tous). \\ Ici, le droit sur le fichier passwd est accordé à tous les exécutants lambda (valeur x pour tous). \\
Ligne 222: Ligne 242:
 Le positionnement du SUID permet à passwd d'​utiliser ses droits de réalisation root (rw-) dans le fichier shadow pour l'​exécution de la commande lambda initié, en la prenant à son compte ! \\ Le positionnement du SUID permet à passwd d'​utiliser ses droits de réalisation root (rw-) dans le fichier shadow pour l'​exécution de la commande lambda initié, en la prenant à son compte ! \\
  
-Exit l'​utilisateur non-root initiateur de la commande ! C'est donc root qui la prend à son compte juste pour l'​exécution de cette commande. \\+Exit l'​utilisateur non-root initiateur de la commande ! C'est donc root qui la prend à son compte juste pour l'​exécution ​à l'​intérieur ​de cette commande. \\
  
 ===== Final ===== ===== Final =====
doc/systeme/chmod.1382786303.txt.gz · Dernière modification: 26/10/2013 13:18 par MicP

Pied de page des forums

Propulsé par FluxBB