Estou escrevendo um aplicativo Java em que preciso executar uma linha de comando e obter um resultado de volta, mas quando executo o comando, ele solicita a senha do sudo. Até agora eu tentei:
$ sudo -s
$ vim /etc/sudoers
# User privilege specification
root ALL=(ALL:ALL) NOPASSWD: ALL
javauser ALL=(ALL:ALL) NOPASSWD: ALL
:wq
$ 4 -r--r----- 1 root root 615 2011-10-26 09:23 sudoers
Depois de executar o comando, ele novamente pede "[javauser] senha para javauser:". Mas eu já mencionei noPASSWD.
whoami
retorna alex
e estou adicionando-o como este no sudoers
arquivo
# User privilege specification
root ALL=(ALL:ALL) ALL
alex ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
Correr continua me pedindo minha senha, alguma idéia?
command-line
sudo
muru
fonte
fonte
sudo visudo
vez devim
editar o arquivo sudoers. Dessa forma, se você cometer um erro, o programa avisa sobre isso.Respostas:
Você precisa fazer o seguinte, no tipo de terminal
sudo visudo
e adicionar uma linha como esta no final do arquivo, especificando os comandos que deseja executar sem digitar a senha sudo (sugiro que você use cada comando que deseja usar no programa e não apenas permita que todos os programas sejam executados por isso)Agora você pode executar os comandos especificados sem senha, desde que você digite esse comando
sudo
.ou seja: digamos que você deseja executar
shutdown -r now
sem precisar digitar a senha sudo toda vez e seu nome de usuário é 'joedoe'digite
sudo visudo
em um terminalAdicione
joedoe ALL=NOPASSWD: /usr/sbin/shutdown -r now
como uma nova linha no final do arquivo , use caminhos absolutos para o programa que você está tentando usar.no seu programa, você pode usá-lo
sudo shutdown -r now
sem precisar digitar a senha do sudo.Você pode encontrar o caminho absoluto para um programa usando
which <program name>
um terminal.É um truque muito sujo deixa seu sistema aberto para outros perigos, mas acho que você sabe o que está fazendo e deseja isso.
Você realmente precisa garantir que as permissões que você está definindo estejam no final do arquivo, para que nada seja sobrescrito pelas permissões dos grupos.
fonte
sudo visudo
e nãovim
editar o arquivo sudoers? Se ele fizesse isso, funcionaria.sudo
na frente do comando dentro do seu código? você precisa fazer isso mesmo se forçar o nopasswd no arquivo sudoers. ou seja: usesudo <command>
não apenas<command>
.bruno
e cmd ="sudo whoami
"retornaroot
sudoers
do arquivo. Após a atribuição dos grupos, etc. Realmente a última linha! Mova a linha para ser a última no arquivo! (espero que seja isso).