É 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/sudoers
arquivo e /etc/sudoers.d
diretório. É preferível adicionar um arquivo,com o mesmo nome do usuáriovocê deseja definir o sudo, embora /etc/sudoers.d
també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 root
execute 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_user
direitos para executar cat
sem digitar a senha e chmod
depois de digitar a senha, em qualquer host, como qualquer usuário
Depois de criar um arquivo, /etc/sudoers.d
você 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 visudo
comando 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 sudoers
para mais detalhes e exemplos avançados