Sys Admin (ep. 03, parte 8-8) - Permissões (permissoẽs especiais)

SUID (Setuid)

Uma permissão especial do Linux cujo objectivo é conceder privilégios elevados temporários durante a execução de ficheiros. Quando aplicado, o programa é executado com permissões do proprietário do ficheiro, e não as do utilizador que o iniciou, criando uma elevação de privilégios controlada. Este mecanismo é crucial para utilitários do sistema como o passwd, que requerem acesso root para modificar recursos protegidos, mantendo a segurança geral do sistema. Vejamos este um exemplo prático.
 
No exemplo abaixo temos o ficheiro hello.sh (um script) que pertence ao usuário root, e com permissões de leitura e escrita apenas para este usuário. Por sua vez, o usuário ordela, tenta correr este script mas sem sucesso porque não tem permissão.
Usando o usuário root, atribuimos permissões especiais de execussão para todo e qualquer usuário neste sistema para correr este script com previlégios do proprietário do ficheiro, neste caso o root. Vamos prestar atenção nas permissões antes e depois de atribuir a permissão especial, vejamos.

Tentativa de correr o script através do usuário ordela.

Atribuir permissão SUID especial usando o usuário root.

Nova tentativa de correr o script através do usuário ordela.

Conseguimos correr o script com sucesso usando o usuário ordela, conforme mostra a imagem acima.
Ainda podemos também tentar com um usuário diferente deste, por exemplo o usário ordela3. Veja abaixo.

E o usuário ordela3 também consegue correr o script. Resumindo, todo usuário que tenha permissão para pelo menos aceder o local (directório) onde se encontra o ficheiro, pode muito bem correr este script sem nenhuma dificuldade, uma vez que este ficheiro contém permissoẽs especiais. 
 

SGID (Setgid)

Marcada pelo símbolo s na posição de execução do grupo das permissões de um ficheiro. SGID eleva privilégios do programa, fazendo com que seja executado com permissões do proprietário do grupo do ficheiro, em vez do grupo do utilizador que o executa. Quando definido num directório, garante que quaisquer novos ficheiros ou subdirectórios criados dentro dele herdem automaticamente a propriedade do grupo do directório.
Vejamos abaixo como funciona na prática.


Uma permissão exclusiva, identificada pelo símbolo t na posição de execução para outros num directório. Modifica regras padrão de exclusão, garantindo que apenas o proprietário do ficheiro, o proprietário do directório ou o usuário root possam excluir ou renomear ficheiros dentro desse directório. Esse recurso de segurança é essencial para espaços partilhados como /tmp, onde vários utilizadores precisam de acesso de escrita, mas devem ser impedidos de remover arbitrariamente ficheiros uns doss outros. Vejamos o exemplo abaixo.
 

Representação numérica das permissoões especiais.
 
Permissoẽs especias também podem ser combinadas.

Comentários