Подключение консоли заданий Cron и права root

Подключение консоли заданий Cron и права root

Я работаю над скриптом для пользователя Bob с соответствующими частями, показанными ниже. Проблема в том, что если я помещу этот cronjob под пользователя Bob, zenity будет работать, но shutdown не будет. А если я помещу его под root, shutdown будет работать, но zenity не будет виден на консоли.

#!/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"

Я также пробовал работать под учетной записью root и использовать su для Bob для zenity и возвращаться в режим root для завершения работы, но это не сработало.

Есть ли способ сделать это?

Дополнительная информация

Операционная система — Linux Mint, и Боб — единственный пользователь машины.

решение1

Непривилегированные пользователи не могут выключить машину из командной строки. Если вам абсолютно необходимо отправить shutdown как Боб, вы можете добавить его в sudoers с помощью visudo.

sudo visudo

Добавьте следующую строку:

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

Сохраните файл. Затем вы можете suкак боб и протестировать команду:

sudo /sbin/shutdown -h "now"

Связанный контент