Estou trabalhando em um script para o usuário Bob com as partes relevantes mostradas abaixo. O problema que estou tendo é se eu colocar este cronjob no usuário Bob, o zenity funcionará, mas o desligamento não. E se eu colocá-lo no desligamento do root funcionará, mas o zenity não será visível no console.
#!/bin/bash
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u Bob gnome-session)/environ)";
someValue=`DISPLAY=:0.0 zenity --text="tell me your value" --entry`
...
...
/sbin/shutdown -h "now"
Eu também tentei rodar sob root e usar su para Bob para zenity e sair de volta para root para desligar, mas isso não funcionou.
Existe uma maneira de fazer isso?
Outras informações
OS é Linux Mint e Bob é o único usuário da máquina
Usuários sem privilégios não podem desligar uma máquina a partir da linha de comando. Se você realmente precisar enviar o desligamento como Bob, poderá adicioná-lo aos sudoers usando
visudo
.Adicione a seguinte linha a is:
Salvar Arquivo. Então você pode
su
como bob e testar o comando: