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 [26/10/2013 13:18] MicP [TP 1] |
doc:systeme:chmod [27/05/2015 17:16] milou [Droits spéciaux - SUID] |
||
---|---|---|---|
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 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 54: | Ligne 51: | ||
<code user>chmod -wx php</code> | <code user>chmod -wx php</code> | ||
<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 99: | Ligne 96: | ||
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. | ||
Ligne 128: | Ligne 125: | ||
* 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. |
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 149: | Ligne 146: | ||
<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, répertoire par répertoire... 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 |
===== Droits spéciaux - SUID ===== | ===== Droits spéciaux - SUID ===== | ||
Ligne 156: | Ligne 153: | ||
SUID - un droit sécurisé - De bonnes bases sont requises... pas cool ! | SUID - un droit sécurisé - De bonnes bases sont requises... pas cool ! | ||
</note> | </note> | ||
- | |||
- | Directement inspiré de : | ||
- | |||
- | [[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**. \\ | 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**. \\ | ||
Ligne 170: | Ligne 163: | ||
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 206: | Ligne 199: | ||
=== 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). \\ |