如何赋予用户关机权限?

Ame*_*Jah 9 sudo shutdown 11.04

我正在使用 Ubuntu 11.04。我想运行一个脚本来检查正在运行的进程并在该进程结束时关闭系统。为此,用户需要关闭访问权限,以便无需密码即可执行脚本。

我参考了这个页面并在我的 sudoers 文件中添加了文本。但是,每当我执行sudo shutdown -h now. 此外,当我在没有 sudo 的情况下执行关机时,我收到一条错误消息,提示需要 root 权限。

我的 sudoers 文件看起来像这样。

# Cmnd alias specification
Cmnd_Alias      SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
myusername    ALL = NOPASSWD: SHUTDOWN
Run Code Online (Sandbox Code Playgroud)

如何在无需手动输入密码的情况下授予用户执行关机命令的权限?

谢谢。

Chr*_*oph 7

我在这个答案中做到了,对我来说完美无缺。也许你的方法错过了这一visudo部分?

打开命令行并输入:

sudo visudo 
Run Code Online (Sandbox Code Playgroud)

在打开的文件中,在末尾添加以下行:

yourusername ALL=NOPASSWD: /sbin/halt
Run Code Online (Sandbox Code Playgroud)

然后退出编辑器并保护它(CTRL+x)。

现在您可以从命令行关闭您的计算机,例如在您下载某些内容后:

wget UrlOfTheFileYouWantToDownload ; sudo halt
Run Code Online (Sandbox Code Playgroud)


Ali*_*rei 6

您可以使用 HAL 或 ConsoleKit 关闭或重新启动,这不需要您输入用户名/密码:

HAL(较旧的 Ubuntu 版本):

dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
Run Code Online (Sandbox Code Playgroud)

ConsoleKit(较新的 Ubuntu 版本,在 Ubuntu 11.04 上测试):

dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Run Code Online (Sandbox Code Playgroud)