使用 rtcwake 无需输入密码

使用 rtcwake 无需输入密码

我想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 中。

相关内容