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 Dernière révision Les deux révisions suivantes | ||
doc:systeme:chmod [27/05/2015 17:12] milou [TP 1] |
doc:systeme:chmod [08/11/2023 22:13] TyZef [TP 2] |
||
---|---|---|---|
Ligne 48: | 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> | ||
<file config retour de la commande>-r--r--r-- 1 mattux users 92 avr 20 23:26 php</file> | <file config retour de la commande>-r--r--r-- 1 mattux users 92 avr 20 23:26 php</file> | ||
Ligne 91: | 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 : | ||
Ligne 104: | Ligne 106: | ||
* 110 = 6 = rw- | * 110 = 6 = rw- | ||
* 111 = 7 = rwx | * 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). | ||
Ligne 116: | Ligne 117: | ||
Le droit de : | Le droit de : | ||
- | * lecture ( r ) correspond à 4 | + | * 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, g, o). | + | |
Ainsi : | Ainsi : | ||
Ligne 126: | Ligne 126: | ||
* 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 134: | 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 143: | 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... C'est beaucoup, beaucoup de temps d'gagné ! LOL | ||
Ligne 154: | Ligne 181: | ||
</note> | </note> | ||
- | 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**. \\ | + | 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**. \\ |
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 165: | Ligne 192: | ||
Saisir 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 182: | 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 201: | Ligne 228: | ||
Saisir 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> |
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 ! | ||
Ligne 207: | Ligne 234: | ||
Puis saisir : | 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 215: | 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 ===== |