Como fazer o sudo aceitar a senha automaticamente sem solicitá-la?

Como fazer o sudo aceitar a senha automaticamente sem solicitá-la?

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 fecha o login, em vez de a máquina desligar, a tela de login volta. Assim, o usuário não consegue fazer login, mas ao mesmo tempo recupera a mesma tela de login.

A razão pela qual sinto é que, como a senha para o desligamento do usuário não foi 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 de pegar minha senha automaticamente quando o comando sudo acima for executado. Eu verifiquei man sudoe acho que -Aa opção deve ser usada.

Seguindo aquela página de manual, corri

SUDO_ASKPASS=/home/ravbholua/pass.txt

export SUDO_ASKPASS

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

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

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

A partir desta saída, significa que este arquivo de caminho deve ser executado e fornecer minha senha como saída para o sudo. O que pensei anteriormente, seria a senha deste arquivo chamado pass.txt, então digitei minha senha neste arquivo. Mas não!!!!!!!

Alguma sugestão, por favor!

Responder1

SUDO_ASKPASS deveria ser um binário que solicita uma senha ao usuário. Um exemplo de uso seria ter uma janela pop-up em uma GUI solicitando ao usuário que digite sua senha quando estiver usando um programa GUI. A página de manual diz o seguinte:

Especifica o caminho para um programa auxiliar usado para ler a senha se nenhum terminal estiver disponível ou se a opção -A for especificada.

Para fazer o que deseja, você provavelmente desejará 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 'TODAS' máquinas.

feche TODOS = NOPASSWD: /sbin/shutdown -h agora, /sbin/shutdown -r agora

Uma opção mais insegura seria usar a opção '-S' do sudo para ler a senha do stdin e repetir a senha assim:

echo "senha" | sudo -S desligamento -h agora

informação relacionada