Cron Job Console Connect e permissões de root

Cron Job Console Connect e permissões de root

Estou trabalhando em um script para o usuário Bob com as partes relevantes mostradas abaixo. O problema que estou tendo é que se eu colocar este cronjob sob o usuário Bob, o zenity funcionará, mas o desligamento não. E se eu colocá-lo em modo root, o desligamento funcionará, mas o zenity não estará 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"

Também tentei rodar no root e usar su para Bob para zenity e voltar ao root para desligar, mas não funcionou.

Existe uma maneira de fazer isso?

Outras informações

O SO é Linux Mint e Bob é o único usuário da máquina

Responder1

Usuários não privilegiados não podem desligar uma máquina pela linha de comando. Se for absolutamente necessário enviar shutdown como Bob, você pode adicioná-lo aos sudoers usando visudo.

sudo visudo

Adicione a seguinte linha a is:

bob ALL = (root) NOPASSWD: /sbin/shutdown -h "now"

Salvar Arquivo. Então você pode suusar bob e testar o comando:

sudo /sbin/shutdown -h "now"

informação relacionada