Um bit fixo é um bit de permissão definido em um arquivo ou diretório que permite que apenas o proprietário do arquivo / diretório ou o usuário root exclua ou renomeie o arquivo. Nenhum outro usuário recebe privilégios para excluir o arquivo criado por outro usuário.
Às vezes acontece que você precisa do diretório Linux que pode ser usado por todos os usuários do sistema Linux para criar arquivos. Os usuários podem criar, excluir ou renomear arquivos de acordo com sua conveniência neste diretório.
Agora, e se um usuário excluir (ou renomear) acidental ou deliberadamente um arquivo criado por outro usuário neste diretório?
Bem, para evitar esse tipo de problema, o conceito de bit pegajoso é usado. Como / tmp é usado para essa finalidade. Portanto, para evitar o cenário acima, / tmp use bit pegajoso.
Por exemplo:
mkdir demo
chmod 777 demo
Também criei dois arquivos com usuário diferente nesta pasta, com a permissão 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
Agora ligue a parte mais difícil
chmod +t demo/
ls -ld demo
drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo
Agora, o que acontece se um usuário (abhi) quiser renomear o segundo usuário (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
A origem do bit pegajoso
No Linux, o bit pegajoso só tem o uso descrito acima, nos diretórios. Historicamente, era usado para algo completamente diferente em arquivos regulares, e é daí que o nome vem.
Quando um programa é executado, leva tempo para carregar o programa na memória antes que o usuário possa realmente começar a usá-lo. Se um programa, por exemplo, um editor é usado com frequência pelos usuários, o atraso no tempo de inicialização era uma sobrecarga na época.
Para melhorar esse atraso, o bit adesivo foi introduzido. O sistema operacional verificou se o bit pegajoso de um executável está LIGADO, o segmento de texto do executável é mantido no espaço de troca. Isso facilitou o carregamento do executável na RAM quando o programa foi executado novamente, minimizando o atraso de tempo.
Sistemas modernos como o Linux gerenciam seu cache de executáveis e outros arquivos automaticamente e não precisam da parte complicada para isso.
Fonte: “Conceito de Bit Sticky do Linux Explicado com Exemplos” no The Geek Stuff