O documento explica três tipos especiais de permissões em sistemas Linux: SUID, SGID e Sticky bit. SUID e SGID permitem que usuários executem arquivos com as permissões do dono ou grupo do arquivo. Sticky bit impede que usuários excluam arquivos em pastas protegidas, exceto o dono. O documento descreve como configurar e verificar esses atributos usando chmod e ls.
2. SUID
Set owner User ID é um tipo especial de
permissão de arquivos.
Normalmente, quando um programa roda, ele
herda permissões de acesso do usuário
logado.
O SUID é definido para dar permissões
temporárias para um usuário executar um
programa ou arquivo com as permissões do
proprietário do arquivo (geralmente root).
Fábio dos Reis - Bóson Treinamentos
3. SUID - exemplos
O comando passwd (gerenciamento de
senhas) roda com SUID configurado para que
um usuário comum possa alterar suas própria
senha, pois ele não tem permissão para alterar
arquivos como o /etc/shadow - somente o root
tem.
Fábio dos Reis - Bóson Treinamentos
4. SUID - Configuração
Usamos o comando chmod para configurar o
SUID em um arquivo:
chmod 4750 arquivo # permissão 4 = SUID
Fábio dos Reis - Bóson Treinamentos
5. SUID - Verificação
Para verificarmos se um arquivo possui o bit
SUID ativado nas permissões do proprietário,
usamos o comando ls -l:
-rwsr-xr-x fabio arquivo
A permissão de execução do proprietário (x) é
substituída por um s ou S
s = possui permissão de execução
S = não possui permissão de execução
Fábio dos Reis - Bóson Treinamentos
6. SUID - Verificação
Podemos localizar arquivos que possuam o bit
SUID ativo com o comando a seguir:
find / -perm +4000
Fábio dos Reis - Bóson Treinamentos
7. SGID
Set Group ID - tipo especial de permissões
aplicado a arquivos/pastas.
Normalmente, quando um programa roda, ele
herda permissões de acesso do usuário
logado.
O SGID é definido para dar permissões
temporárias para um usuário executar um
programa ou arquivo com as permissões do
grupo do arquivo.
Fábio dos Reis - Bóson Treinamentos
8. SGID - Configuração
Usamos o comando chmod para configurar o
SGID em um arquivo:
chmod 2750 arquivo # permissão 2 = SGID
Fábio dos Reis - Bóson Treinamentos
9. SGID - Verificação
Para verificarmos se um arquivo possui o bit
SGID ativado nas permissões do proprietário,
usamos o comando ls -l:
-rwxr-sr-x fabio arquivo
A permissão de execução do grupo (x) é
substituída por um s ou S
s = possui permissão de execução
S = não possui permissão de execução
Fábio dos Reis - Bóson Treinamentos
10. SGID - Verificação
Podemos localizar arquivos que possuam o bit
SGID ativo com o comando a seguir:
find / -perm +2000
Fábio dos Reis - Bóson Treinamentos
11. Sticky bit
Bit usado em permissões de pastas para evitar
a exclusão de seu conteúdo por outros
usuários, mesmo que eles tenham a permissão
de escrita na pasta.
Somente o proprietário do arquivo e o root
podem excluir arquivos em uma pasta que
tenha o Sticky bit ativado.
Fábio dos Reis - Bóson Treinamentos
12. Sticky - Configuração
Usamos o comando chmod para configurar o
Sticky em uma pasta:
chmod 1757 arquivo # permissão 1 = Sticky
Fábio dos Reis - Bóson Treinamentos
13. Sticky - Verificação
Para verificarmos se uma pasta possui o bit
Sticky ativado nas permissões dos outros,
usamos o comando ls -l:
-rwxr-xrwt fabio pasta
A permissão de execução do grupo (x) é
substituída por um t ou T
t = possui permissão de execução
T = não possui permissão de execução
Fábio dos Reis - Bóson Treinamentos
14. Sticky - Verificação
Podemos localizar arquivos que possuam o bit
Sticky ativo com o comando a seguir:
find / -perm +1000
Fábio dos Reis - Bóson Treinamentos