Posso conceder acesso a um único usuário não sudo para executar um único comando sem sudo?

Posso conceder acesso a um único usuário não sudo para executar um único comando sem sudo?

É possível fornecer a um único usuário sem acesso sudo a capacidade de executar um comando protegido por sudo como chmod?

Responder1

sudoos arquivos de configuração são armazenados em /etc/sudoersarquivo e /etc/sudoers.ddiretório. É preferível adicionar um arquivo,com o mesmo nome do usuáriovocê deseja definir o sudo, embora /etc/sudoers.dtambém possa editar /etc/sudoers.

A sintaxe básica équem onde = (como_quem) o que

Por exemplo:

root ALL = (ALL:ALL) ALL

menas permite que o usuário rootexecute em qualquer host (ALL = ) como qualquer usuário:grupo (ALL:ALL) qualquer comando (ALL)

No seu caso, você precisa fazer algo como:

echo "ltd_user ALL=NOPASSWD:/bin/cat, PASSWD:/bin/chmod" > /etc/sudoers.d/ltd_user

Isto dá ao usuário ltd_userdireitos para executar catsem digitar a senha e chmoddepois de digitar a senha, em qualquer host, como qualquer usuário

Depois de criar um arquivo, /etc/sudoers.dvocê deve definir a permissão para 440

chmod 440 /etc/sudoers.d/ltd_user

Observe também que dei um exemplo muito básico (e, portanto, usei eco e redirecionamento), mas seria uma boa prática usar o visudocomando para editar os arquivos de configuração do sudo, o que garante que apenas uma pessoa edite o arquivo por vez e tenha as permissões adequadas. e se recusa a gravar o arquivo e sair se houver erros de sintaxe nas alterações feitas.

visudo -f /etc/sudoers.d/ltd_user

veja man sudoerspara mais detalhes e exemplos avançados

informação relacionada