Un bit permanente es un bit de permiso que se establece en un archivo o directorio que permite que solo el propietario del archivo / directorio o el usuario raíz elimine o cambie el nombre del archivo. Ningún otro usuario tiene privilegios para eliminar el archivo creado por otro usuario.
En algún momento sucede que necesita un directorio de Linux que puedan usar todos los usuarios del sistema Linux para crear archivos. Los usuarios pueden crear, eliminar o renombrar archivos según su conveniencia en este directorio.
Ahora, ¿qué pasa si un usuario elimina accidentalmente o deliberadamente (o renombra) un archivo creado por otro usuario en este directorio?
Bueno, para evitar este tipo de problemas, se utiliza el concepto de bit sticky. Como / tmp se usa para este propósito. Entonces, para evitar el escenario anterior, / tmp usa un bit fijo.
Por ejemplo:
mkdir demo
chmod 777 demo
También creé dos archivos con diferentes usuarios en esta carpeta con permiso 777.
ls -ld demo
drwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demo
ls -l demo
-rwxrwxrwx 1 abhi abhi 0 Mar 11 17:11 file1
-rwxrwxrwx 1 anshu anshu 0 Mar 11 18:15 file2
Ahora encienda la parte adhesiva de esto
chmod +t demo/
ls -ld demo
drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo
Ahora, ¿qué sucede si un usuario (abhi) desea cambiar el nombre del segundo usuario (anshu)
mv /home/guru/demo/file2 /home/guru/demo/file3
mv: cannot move '/home/guru/demo/file2' to '/home/guru/demo/file3': Operation not permitted
El origen de la parte pegajosa.
En Linux, el bit adhesivo solo tiene el uso descrito anteriormente, en los directorios. Históricamente, se usaba para algo completamente diferente en los archivos normales, y de ahí proviene el nombre.
Cuando se ejecuta un programa, lleva tiempo cargar el programa en la memoria antes de que el usuario pueda comenzar a usarlo. Si los usuarios utilizan con frecuencia un programa, por ejemplo, un editor, el retraso del tiempo de inicio fue una sobrecarga en ese entonces.
Para mejorar este retraso de tiempo, se introdujo el bit adhesivo. El sistema operativo verificó que si el bit fijo en un ejecutable está activado, el segmento de texto del ejecutable se mantuvo en el espacio de intercambio. Esto facilitó la carga del ejecutable en la RAM cuando el programa se ejecutó nuevamente, minimizando así el retraso de tiempo.
Los sistemas modernos como Linux gestionan su caché de archivos ejecutables y otros archivos automáticamente y no necesitan el bit adhesivo para eso.
Fuente: "Concepto de Linux Sticky Bit explicado con ejemplos" en The Geek Stuff