Como fazer com que o sudo aceite a senha automaticamente sem solicitar a senha? [duplicado]

1

Eu criei um usuário chamado shut para que, sempre que alguém fizer login usando esse nome de usuário, a máquina seja desligada. Para isso, coloquei o comando abaixo no final do .profile.

exec sudo shutdown -h now

Mas isso não serviu ao propósito. Quando o usuário encerra o login, em vez de a máquina desligar, a tela de login está voltando. Portanto, o usuário não pode efetuar login, mas ao mesmo tempo voltar a exibir a mesma tela de login.

A razão que eu sinto é que porque a senha para o usuário shut não é fornecida, a máquina não está desligando. E por causa do exec, a tela de login está voltando (o que é bom).

Agora, para resolver meu trabalho, preciso de uma maneira para que ele tome automaticamente minha senha quando o comando sudo acima for executado. Eu verifiquei man sudo e acho -A opção tem que ser usado.

Seguindo essa página man, eu corri

SUDO_ASKPASS=/home/ravbholua/pass.txt

export SUDO_ASKPASS

Então, para verificar se está funcionando, eu corri

ravbholua@ravbholua-Aspire-5315:~$ sudo -A pwd

sudo: unable to run /home/ravbholua/pass.txt: Permission denied

Dessa saída, isso significa que esse arquivo de caminho deve ser executado e fornecer minha senha como saída para o sudo. O que antes eu pensava, seria necessário a senha desse arquivo chamado pass.txt, então eu inseri minha senha nesse arquivo. Mas não !!!!!!!

Qualquer sugestão, por favor!

    
por Ravi 28.09.2013 / 17:54

1 resposta

4

SUDO_ASKPASS deve ser um binário que solicita ao usuário uma senha. Um exemplo de uso para isso seria ter uma janela pop-up em uma GUI pedindo ao usuário para digitar sua senha quando estiver usando um programa GUI. A página man diz o seguinte:

Specifies the path to a helper program used to read the password if no terminal is available or if the -A option is specified.

Para fazer o que você quer, você provavelmente quer editar seu arquivo / etc / sudoers para permitir que o usuário 'shut' possa executar o shutdown sem especificar uma senha. A linha abaixo permite que o usuário 'shut' execute '/ sbin / shutdown -h now' e '/ sbin / shutdown -r now' em 'ALL' máquinas.

shut    ALL = NOPASSWD: /sbin/shutdown -h now, /sbin/shutdown -r now

Uma opção mais insegura seria usar a opção '-S' do sudo para ler a senha do stdin e ecoar a senha para ele da seguinte forma:

echo "password" | sudo -S shutdown -h now
    
por 28.09.2013 / 18:42

Tags