Nenhuma senha para executar o comando como root para o comando fixo? [duplicado]

6

É possível definir uma regra em sudoers para permitir que um usuário execute um comando bem definido como root, sem senha ou outra autenticação, exceto ser o usuário certo?

Existem alternativas para resolver isso (ou algo muito similar)?

Use bit de permissão suid? Talvez faça uso de chaves ssh de alguma forma?

    
por Volker Siegel 10.07.2014 / 08:06

1 resposta

9

O arquivo sudoers permite especificar comandos para permitir:

username ALL=(root) NOPASSWD: /bin/foo bar baz

Aqui username é o usuário que você deseja permitir e o comando vai no final da linha. Se você especificar argumentos para o comando, o usuário só poderá executá-lo exatamente com esses argumentos, mas se você não especificá-los aqui, o usuário poderá executar o comando com quaisquer argumentos que escolher. Você pode especificar vários comandos separados por vírgulas ou apenas como linhas separadas.

Edite o arquivo sudoers com visudo (como root) e adicione uma linha nesse formato , com os detalhes apropriados alterados, e o usuário poderá executar exatamente o comando especificado com privilégios elevados.

NOPASSWD: permite que o usuário execute o comando sem avisar. O ALL é uma restrição de host, que você provavelmente pode ignorar (você saberá se não puder). (root) significa que eles só podem executar o comando como usuário root.

Como você pergunta, é estritamente possível fazer isso com ssh também, embora sudo seja melhor. Você pode colocar COMMAND=something no início de uma linha em /root/.ssh/authorized_keys e fornecer ao usuário uma chave SSH de propósito especial correspondente a esse comando. As únicas razões possíveis que seriam melhores do que sudo são se você não quisesse que o usuário tivesse qualquer outro acesso à máquina, ou se você não queria que eles tivessem que escrever o comando por conta própria.

    
por 10.07.2014 / 08:26