Em computação, o sticky bit (em português bit pegajoso) é um sinalizador de direito de acesso proprietário que pode ser assimilado a arquivos e diretórios em sistemas do tipo Unix.
Quando um sticky bit de diretório é definido, o sistema de arquivos trata os arquivos em tais diretórios de uma maneira especial de forma que apenas o proprietário do arquivo, o proprietário do diretório ou o usuário root possa renomear ou deletar o arquivo. Sem o sticky bit definido, qualquer usuário com permissões de escrita e execução para o diretório pode renomear ou deletar arquivos contidos, não importando o proprietário do arquivo. Normalmente isto é definido no diretório tmp para prevenir que usuários ordinários deletem ou movam arquivos de outros usuários.
A função moderna do sticky bit foi introduzida no 4.3BSD em 1986 e é encontrado na maioria dos sistemas do tipo Unix modernos.
Essa permissão geralmente é aplicada a diretórios. Quando isso ocorre, os arquivos criados dentro do mesmo apenas podem ser renomeados ou apagados pelo dono do arquivo, do diretório ou pelo superusuário.
Embora exista uma concordância sobre a funcionalidade dessa permissão quando aplicada a diretórios, quando ela é aplicada a arquivos sua função varia de acordo com o sistema operacional utilizado. Os sistemas Linux atuais, por exemplo, ignoram o sticky bit em arquivos.
O sticky bit pode ser definido usando o comando chmod, usando seu modo octal 1000 ou por meio de seu símbolo t (s já é usado pelo bit setuid). Por exemplo, para adicionar o bit no diretório /usr/local/tmp, uma opção seria digitar chmod +t /usr/local/tmp. Ou, para certificar que o diretório possui as permissões padrões de tmp, outra alternativa seria digitar chmod 1777 /usr/local/tmp.
Para retornar à permissão anterior, use chmod -t /usr/local/tmp ou chmod 0777 /usr/local/tmp (o último também reiniciará o diretório tmp para as permissões padrões).
Na notação simbólica de permissões do sistema de arquivos do Unix, o sticky bit é representado pela letra t no local de caractere final. Por exemplo, no Solaris 8, o diretório /tmp, que por padrão possui o sticky bit definido, mostra o seguinte:
$ ls -ld /tmp drwxrwxrwt 4 root sys 485 Nov 10 06:01 /tmp
Se o sticky bit for definido em um arquivo ou diretório sem o bit de execução definido para a categoria outros (non-user-owner ou non-group-owner), ele é indicado com um T maiúsculo:
# ls -l test -rw-r--r-- 1 root other 0 Nov 10 12:57 test # chmod +t test; ls -l test -rw-r--r-T 1 root other 0 Nov 10 12:57 test
This article uses material from the Wikipedia Português article Sticky bit, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Conteúdo disponibilizado nos termos da CC BY-SA 4.0, salvo indicação em contrário. Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Português (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.