我正在为用户 Bob 编写一个脚本,相关部分如下所示。我遇到的问题是,如果我把这个 cronjob 放在用户 Bob 下,zenity 会工作,但关机不会。如果我把它放在 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 to Bob 进行 zenity 并退出回 root 以关闭,但这不起作用。
有没有办法做到这一点?
其他信息
操作系统是 Linux Mint,Bob 是这台机器的唯一用户
非特权用户不能从命令行关闭机器。如果您绝对需要以 Bob 的身份发送 shutdown,您可以使用 .将他添加到 sudoers
visudo
。将以下行添加到是:
保存存档。然后你可以
su
作为 bob 并测试命令: