Configuração do sudo
O arquivo /etc/sudoers
é o arquivo de configuração principal para o comando sudo
. Para evitar problemas se vários administradores tentarem editar o arquivo ao mesmo tempo, você só poderá editá-lo com o comando especial visudo. O editor visudo também valida o arquivo para garantir que não haja erros de sintaxe.
Por exemplo, a linha a seguir do arquivo /etc/sudoers
permite acesso sudo
aos membros do grupo wheel.
%wheel ALL=(ALL:ALL) ALL
-
A string
%wheel
é o usuário ou grupo ao qual a regra se aplica. O símbolo%
antes da palavra wheel especifica um grupo. -
O comando
ALL=(ALL:ALL)
especifica que em qualquer host com esse arquivo (o primeiro ALL), os usuários no grupo wheel podem executar comandos como qualquer outro usuário (o segundo ALL) e qualquer outro grupo (o terceiro ALL) no sistema. -
O comando final
ALL
especifica que os usuários no grupo wheel podem executar qualquer comando.
Por padrão, o arquivo /etc/sudoers
também inclui o conteúdo de qualquer arquivo no diretório /etc/sudoers.d
como parte do arquivo de configuração. Com essa hierarquia, você pode adicionar o acesso sudo
para um usuário colocando um arquivo apropriado nesse diretório.
Nota
É conveniente colocar os arquivos de configuração no diretório
/etc/sudoers.d
. Você pode ativar ou desativar o acesso a sudo copiando um arquivo para o diretório ou removendo-o do diretório..
Para permitir acesso sudo
total para o usuário user01
, você pode criar o arquivo /etc/sudoers.d/user01
com o seguinte conteúdo:
user01 ALL=(ALL) ALL
Para permitir acesso sudo
total para o grupo group01
, você pode criar o arquivo /etc/sudoers.d/group01
com o seguinte conteúdo:
%group01 ALL=(ALL) ALL
Para permitir que os usuários no grupo games
executem o comando id
como o usuário operator, você pode criar o arquivo /etc/sudoers.d/games
com o seguinte conteúdo:
%games ALL=(operator) /bin/id
Você também pode configurar sudo para permitir que um usuário execute comandos como outro usuário sem digitar sua senha, usando o comando NOPASSWD: ALL
:
ansible ALL=(ALL) NOPASSWD: ALL
Embora haja riscos óbvios de segurança para a concessão desse nível de acesso a um usuário ou grupo, os administradores de sistema frequentemente usam essa abordagem com instâncias de nuvem, máquinas virtuais e sistemas de provisionamento para ajudar a configurar os servidores. Você deve proteger a conta com cuidado com esse acesso e exigir a autenticação de chave pública SSH para que um usuário em um sistema remoto possa acessá-la.
Por exemplo, o Amazon Machine Image (AMI) oficial para o Red Hat Enterprise Linux no Amazon Web Services Marketplace é fornecido com o root e as senhas dos usuários ec2-user
bloqueadas. A conta ec2-user
é configurada para permitir acesso remoto interativo através da autenticação de chave pública SSH. O usuário ec2-user
também pode executar qualquer comando como root sem uma senha porque a última linha do arquivo /etc/sudoers
do AMI é configurado da seguinte forma:
ec2-user ALL=(ALL) NOPASSWD: ALL
Você pode reabilitar o requisito para digitar uma senha para sudo
ou introduzir outras alterações para aumentar a segurança como parte do processo de configuração do sistema.