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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:chmod [03/07/2014 00:06] 127.0.0.1 modification externe |
doc:systeme:chmod [17/03/2017 20:58] otyugh [TP 1] |
||
---|---|---|---|
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 ===== | ||
Ligne 31: | Ligne 28: | ||
<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 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 : | ||
Ligne 43: | Ligne 40: | ||
<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 96: | Ligne 96: | ||
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 **décimal** = une notation | + | une expression **binaire** = un nombre **octal** = une notation |
+ | |||
Soit : | Soit : | ||
Ligne 132: | Ligne 134: | ||
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// à le rang **0**, celui juste à sa gauche, //0// le rang **1**, le suivant vers la gauche, //3//, à le rang **2**, et ansi 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écompostion 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. | ||
Exemple pour un fichier : | Exemple pour un fichier : | ||
- | <code bash>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... :-) | ||
Exemple pour un répertoire : | Exemple pour un répertoire : | ||
- | <code bash>chmod 754 /chemin/du/repertoire/test</code> | + | <code user>chmod 754 /chemin/du/repertoire/test</code> |
où nous pouvons ajouter -R pour rendre les autorisations récursives à l'intérieur de ce répertoire, soit : | où nous pouvons ajouter -R pour rendre les autorisations récursives à l'intérieur de ce répertoire, soit : | ||
- | <code bash>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 bash>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... C'est beaucoup, beaucoup de temps d'gagné ! LOL | ||
Ligne 157: | Ligne 195: | ||
</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 204: | ||
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 223: | ||
//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 240: | ||
=== 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 256: | ||
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 ===== |