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 sudo
e acho que -A
a 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