A melhor maneira de executar o comando SSH remoto que requer raiz, mas não como raiz

3

Estou com dificuldades em executar o seguinte comando:

 ssh someuser@lab-test "sudo /usr/local/scripts/user.sh add tstt7777 177700007 \"Test User 06\" "

Para encurtar a história, preciso executar o script user.sh com as privações ROOT como algum usuário de uma máquina remota. No entanto, eu não quero que algum usuário seja capaz de executar qualquer outro comando, abrir um shell ou ter acesso ao sistema. O usuário precisa apenas executar esse script com vários argumentos dinâmicos.

Já lidei com a troca de chaves públicas e adicionei privlages no sudo:

#Sudo
someuser  ALL = NOPASSWD: /usr/local/scripts/user.sh

Mas recebo o seguinte erro:

sudo: sorry, you must have a tty to run sudo

Eu olhei para a função "Command=" em ssh, mas meu entendimento é que isso só irá executar o comando especificado e não permitirá que argumentos sejam passados como indicado na minha invocação.

Há algo que estou perdendo para fazer meu método funcionar via sudo?

Existe um método melhor que não considerei em SSH ou BASH?

    
por Gray Race 28.09.2011 / 00:01

2 respostas

5

Execute o visudo e comente como abaixo:

#Default requiretty
    
por 28.09.2011 / 00:13
1

Basta adicionar a opção -t (pseudo-tty) junto com o comando ssh.

    
por 28.09.2011 / 00:19