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.