我想rtcwake -m off -s 60
在不输入密码的情况下执行类似的操作。
我使用 visudo 将以下行写入 /etc/sudoers:
%sudo ALL = NOPASSWD: /sbin/shutdown, /sbin/poweroff, /sbin/halt, /sbin/reboot
现在我可以不用输入密码就关机了。但是,在没有密码的情况下使用 rtcwake 不起作用。相反,我收到以下消息:
rtcwake: assuming RTC uses UTC ... rtcwake: wakeup from "off" using /dev/rtc0 at Fri Dec 18 17:45:43 2015 shutdown: Need to be root
缺什么?
答案1
由于您已经信任用户可以随时关闭系统,因此让他们rtcwake
以 root 身份进行调用。运行visudo
并添加/usr/sbin/rtcwake
到该行,/sbin/shutdown
依此类推。
答案2
您可以创建一个新的 udev 规则来实现此目的。
在或(取决于您的发行版)中创建一个新40-rtc-permissions.rules
文件,您可以在其中放置以下行/lib/udev/rules.d
/etc/udev/rules.d
KERNEL=="rtc0", GROUP="wheel"
组不一定是轮子。它可以是您想要访问 rtc0 设备的任何用户组。
答案3
知道了。我将以下行添加到 /etc/rc.local 中:
须藤 chmod ugo+r rtc0
并
%sudo ALL = NOPASSWD: /sbin/shutdown, /sbin/poweroff, /usr/sbin/rtcwake
在 /etc/sudoers.请注意,我不关心安全性,因为我的应用程序运行在不运行关键任务的专用计算机上。
编辑:/usr/sbin/rtcwake
根据 Gilles 的回答,包含在 /etc/sudoers 中。