Sys Admin (ep. 04, parte 7) - SUDO (permissão para certos comandos)

No artigo passado (parte 6), explicamos como se pode remover privilegios sudo a um usuário (ordela). Tememos em conta que o usuário em causa faz ou fazia parte de um grupo (wheel) já configurado no ficheiro sudoers, com que então não havia necessidade de especificar este usuário no ficheiro, uma vez que se removidos os previléios ao grupo, todos usuários associados a este são de forma automática afectados . Neste artigo iremos ver como atribuir previlégios sudo a um usuário sem usar um grupo no qual está associado.

Tomemos em conta o usuário jordela, recentimente criado e sem nenhum privilégio sudo. Vejamos na imagem abaixo, este usuário tenta usar o comando sudo para actualizar o sistema mas sem sucesso e na saída nos é informado que este usuário não está no ficheiro sudoers.

Vamos então ao ficheiro sudoers e adicionar lá o usuário jordela e atribuir a este apenas o poder de actualizar o sistema.

E como podemos ver na imagem abaixo, agora o usuário jordela consegue sim correr o comando para actualizar o sistema.

Mas este não consegue ainda correr outros comandos como por exemplo reiniciar o serviço SSH. Vamos acompanhar as imagem abaixo.
 
 

Como podemos ver, integramos com sucesso o usuário regular jordela na estrutura sudoers, que agora passa a ter privilégios sudo para correr certos comandos.

A principal diferença na configuração do sudoers reside na utilização do operador de negação. Para conceder privilégios, simplesmente especificamos o comando permitido a regra, enquanto que para restringir explicitamente um comando dentro de uma atribuição mais ampla, usa-se o símbolo ! para criar uma excecção. Esta sintaxe permite o controlo preciso e detalhado necessário para aplicar o princípio do privilégio mínimo.

Note que anterioemente (parte 6) usamos ALL=(ALL) ALL, fornecendo acesso abrangente, e depois restringimos de forma estrategica comandos específicos usando o operador de negação ! para aplicar exceções de segurança. O método alternativo e mais restritivo ALL=(ALL), começa sem nenhum privilégio e posterioemnete adicionamos de forma explicita apenas os comandos específicos necessários para que o utilizador execute suas tarefas. Ambas técnicas são válidas, sendo a primeira eficiente para restringir o acesso de um administrador confiável e a segunda mais segura por padrão, aderindo perfeitamente ao princípio do privilégio mínimo desde o início.

Comentários