Le « sticky bit » est une fonction de permission sur les systèmes de fichiers Unix et Linux qui est principalement utilisée sur les répertoires. Lorsqu’il est défini, il a un comportement spécial pour les répertoires.

Sticky Bit sur un répertoire:

Quand le sticky bit est appliqué à un répertoire, cela signifie que seul le propriétaire du fichier à l’intérieur de ce répertoire (ou le propriétaire du répertoire lui-même ou root) est autorisé à supprimer ou renommer le fichier. C’est souvent utilisé sur des répertoires tels que /tmp où les utilisateurs ont la permission de créer des fichiers, mais il ne devrait pas être possible pour un utilisateur de supprimer ou de renommer les fichiers d’un autre utilisateur.

Par exemple, le répertoire /tmp a généralement les permissions drwxrwxrwt. Le t à la fin indique que le sticky bit est activé.

Comment définir le sticky bit:

Pour définir le sticky bit sur un répertoire, utilisez la commande chmod avec la lettre t. Par exemple:


chmod +t /chemin/vers/le/repertoire

Pour vérifier si le sticky bit est activé, utilisez ls -l. Si le sticky bit est activé, un t apparaîtra à la fin des permissions du répertoire.

Sticky Bit sur un fichier:

Historiquement, le sticky bit avait un autre usage sur les fichiers exécutables. Lorsqu’il était appliqué à un fichier exécutable, le système gardait le fichier en mémoire après son exécution, permettant ainsi de le démarrer plus rapidement à la prochaine exécution. Cependant, cet usage est devenu obsolète avec l’amélioration des algorithmes de cache et de gestion de la mémoire des systèmes modernes, et aujourd’hui, le sticky bit n’a pas vraiment de sens pour les fichiers.

Il est important de noter que sur la plupart des systèmes modernes, définir le sticky bit sur un fichier n’aura pas d’effet perceptible.

Enlever le Sticky Bit

Pour enlever le sticky bit d’un répertoire ou d’un fichier, vous pouvez utiliser la commande chmod avec la lettre t précédée d’un signe moins (-).

Voici comment vous le faites pour un répertoire :


chmod -t /chemin/vers/le/repertoire

Après avoir exécuté cette commande, le sticky bit sera retiré du répertoire spécifié.

Vous pouvez également utiliser la notation numérique pour changer les permissions. Le sticky bit est représenté par le chiffre 1 à l’extrême gauche. Donc, si vous avez un répertoire avec des permissions de 1777 (ce qui signifie qu’il a le sticky bit ainsi que des permissions de lecture, écriture et exécution pour le propriétaire, le groupe et les autres), vous pouvez enlever le sticky bit en changeant la permission à 777 :


chmod 777 /chemin/vers/le/repertoire

Pour vérifier que le sticky bit a bien été retiré, utilisez la commande ls -ld /chemin/vers/le/repertoire. Vous devriez voir que le t à la fin des permissions a disparu.