Sticky bit

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.[1]

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

Referências


Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.