Sticky bit
Em arquivos executáveis, a propriedade Sticky faz com que o sistema mantenha uma imagem do programa em memória depois que o programa finalizar.
Esta capacidade aumenta o desempenho, pois será feito um cache do programa para a memória e da próxima vez que ele for executado, será carregado mais rápido.
Em diretórios, a propriedade Sticky impede que outros usuários deletem ou renomeam arquivos dos quais não são donos. Isso normalmente é utilizado para aumentar a segurança, pois o diretório estará em modo append-only (somente incremente).
Sendo assim, somente o usuário que é Dono do arquivo, poderá deletar ou renomear os arquivos dentro de um diretório com a propriedade Sticky aplicada.
Aplicando Sticky
- Em arquivos executáveis:
[~]$ chmod 1750 programa_pesado.sh (Formato octal (1))
[~]$ chmod o+t programa_pesado.sh (Formato simbólico (t))
[~]$ ls -lah programa_pesado.sh
-rwxr-x--T 1 root root 2,9M 2006-09-26 23:51 programa_pesado.sh
- Em diretório:
[~]$ chmod 1777 /tmp
[~]$ chmod o+t /tmp
[~]$ ls -lah /tmp
drwxrwxrwt 8 root root 264 2006-09-26 23:22
Retirando Sticky
[~]$ chmod o-t /tmp
Set UID
A propriedade SUID é somente para arquivos executáveis e não tem efeito em diretórios. Nas permissões básicas, o usuário que executou o programa é dono do processo. Mas em arquivo executável com a propriedade SUID aplicada, o programa rodará com o ID do dono do arquivo, não com o ID do usuário que executou o programa.
Normalmente o usuário dono do programa executável é também dono do processo sendo executado. Ou seja, quando um arquivo/programa executável tem o controle de acesso SUID, ele é executado como se ele estivesse iniciado pelo dono do arquivo/programa.
Aplicando Set UID
[~]$ chmod 4750 programa.sh (Formato octal (4))
[~]$ chmod u+s programa.sh (Formato simbólico (s))
[~]$ ls -lah programa.sh
-rwsr-x--- 1 root roberto 0 2006-09-26 22:57 programa.sh
Retirando Set UID
[~]$ chmod u-s programa.sh
[~]$ ls -lah programa.sh
-rwxr-x--- 1 root roberto 0 2006-09-26 22:57 programa.sh
Set GID
A propriedade SGID tem a mesma função que o SUID para arquivos executáveis. Mas a propriedade SGID tem um efeito especial para os diretórios.
Quando SGID é aplicado em um diretório, os novos arquivos que são criados dentro do diretório assumem o mesmo ID de Grupo do diretório com a propriedade SGID aplicado.
-Exemplo:
Se no diretório /home/teste tem o grupo ‘dba’ e tem o SGID habilitado, então todos os arquivos dentro do diretório /home/teste serão criados com o grupo ‘dba’.
Aplicando Set GID
[~]$ chmod 2750 /home/teste (Formato octal (2))
[~]$ chmod g+s /home/teste (Formato simbólico (s))
[~]$ ls -lah /home/teste
drwxr-sr-x 2 dba teste 48 2006-09-26 23:21
Retirando Set GID
[~]$ chmod g-s /home/teste
[~]$ ls -lah /home/teste
drwxr-xr-x 2 dba teste 48 2006-09-26 23:21