Code source wiki de Sticky Bit
Modifié par john le 2026/09/20 20:18
Masquer les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
![]() |
1.1 | 1 | {{toc/}} |
| 2 | |||
| 3 | == Présentation == | ||
![]() |
2.1 | 4 | |
![]() |
5.1 | 5 | Le **Sticky Bit** est un **droit spécial sur un répertoire**. |
| 6 | Il empêche les utilisateurs **de supprimer ou de renommer les fichiers des autres**, même si tout le monde a les droits d'écriture dans ce dossier. | ||
![]() |
1.1 | 7 | |
![]() |
5.1 | 8 | Sans lui, le droit d'écriture sur un dossier suffit à supprimer n'importe quel fichier qu'il contient, quel qu'en soit le propriétaire. |
![]() |
1.1 | 9 | |
![]() |
5.1 | 10 | Il est **souvent utilisé sur ##/tmp##**, un répertoire partagé entre tous les utilisateurs. |
| 11 | |||
![]() |
3.1 | 12 | ---- |
![]() |
1.1 | 13 | |
| 14 | == Exemple concret == | ||
![]() |
2.1 | 15 | |
![]() |
1.1 | 16 | {{code language="bash"}} |
| 17 | ls -ld /tmp | ||
| 18 | {{/code}} | ||
| 19 | |||
| 20 | Sortie : | ||
| 21 | |||
![]() |
5.1 | 22 | {{code language="text"}} |
| 23 | drwxrwxrwt 10 root root 4096 mai 24 12:34 /tmp | ||
| 24 | {{/code}} | ||
![]() |
1.1 | 25 | |
![]() |
5.1 | 26 | Le ##t## à la fin des permissions (##drwxrwxrwt##) indique que le **Sticky Bit est actif**. Un ##T## majuscule signifierait que le Sticky Bit est posé mais que le droit d'exécution manque pour les autres. |
| 27 | |||
![]() |
3.1 | 28 | ---- |
![]() |
1.1 | 29 | |
| 30 | == Ajouter le Sticky Bit == | ||
![]() |
2.1 | 31 | |
![]() |
1.1 | 32 | {{code language="bash"}} |
| 33 | chmod +t mon_dossier | ||
![]() |
5.1 | 34 | # ou en notation octale, le 1 en tête |
| 35 | chmod 1777 mon_dossier | ||
![]() |
1.1 | 36 | {{/code}} |
| 37 | |||
| 38 | Pour le retirer : | ||
| 39 | |||
| 40 | {{code language="bash"}} | ||
| 41 | chmod -t mon_dossier | ||
| 42 | {{/code}} | ||
| 43 | |||
![]() |
3.1 | 44 | ---- |
![]() |
1.1 | 45 | |
| 46 | == Cas d'usage == | ||
![]() |
2.1 | 47 | |
![]() |
1.1 | 48 | * Empêcher un utilisateur de supprimer les fichiers d’un autre dans un dossier partagé |
![]() |
5.1 | 49 | * ##/tmp##, ##/var/tmp##, ou tout répertoire multi-utilisateurs en écriture |
![]() |
1.1 | 50 | |
![]() |
5.1 | 51 | Seuls le propriétaire du fichier, le propriétaire du dossier et root peuvent alors supprimer un fichier. |
| 52 | |||
![]() |
3.1 | 53 | ---- |
![]() |
1.1 | 54 | |
![]() |
5.1 | 55 | == À ne pas confondre == |
| 56 | |||
| 57 | |=Droit|=Notation|=Effet | ||
| 58 | |Sticky Bit|##t## en fin de droits, octal ##1###|Sur un dossier : seul le propriétaire d’un fichier peut le supprimer | ||
| 59 | |SUID|##s## dans les droits du propriétaire, octal ##4###|Un exécutable s’exécute avec l’identité de son propriétaire | ||
| 60 | |SGID|##s## dans les droits du groupe, octal ##2###|Sur un exécutable : identité du groupe ; sur un dossier : les fichiers créés héritent du groupe | ||
| 61 | |||
| 62 | ---- | ||
| 63 | |||
![]() |
1.1 | 64 | == Vérification == |
![]() |
2.1 | 65 | |
![]() |
5.1 | 66 | Répertoires avec le Sticky Bit : |
![]() |
1.1 | 67 | |
| 68 | {{code language="bash"}} | ||
| 69 | find / -type d -perm -1000 2>/dev/null | ||
| 70 | {{/code}} | ||
| 71 | |||
![]() |
5.1 | 72 | Fichiers SUID, à surveiller lors d’un audit de sécurité : |
| 73 | |||
| 74 | {{code language="bash"}} | ||
| 75 | find / -type f -perm -4000 2>/dev/null | ||
| 76 | {{/code}} | ||
| 77 | |||
![]() |
3.1 | 78 | ---- |
![]() |
1.1 | 79 | |
| 80 | == Liens internes == | ||
![]() |
2.1 | 81 | |
![]() |
5.1 | 82 | * [[Retour à la section Tutos Linux>>doc:Wiki Batcave John.TutosLinux.WebHome]] |
| 83 | * [[Durcissement Linux>>doc:Wiki Batcave John.TutosLinux.Durcissement.WebHome]] | ||
![]() |
2.1 | 84 | * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]] |
