Difference between revisions of "Allow users to shutdown (简体中文)"

From ArchWiki
Jump to: navigation, search
(rm temporary i18n template)
(Update command list.)
Line 13: Line 13:
 
然后,在 root 用户下用 {{Ic|visudo}} 命令添加以下到 {{Ic|/etc/sudoers}} 文件的末端。替换其中的 {{Ic|'''user'''}} 为你的用户名, {{Ic|'''hostname'''}} 为你的主机名。
 
然后,在 root 用户下用 {{Ic|visudo}} 命令添加以下到 {{Ic|/etc/sudoers}} 文件的末端。替换其中的 {{Ic|'''user'''}} 为你的用户名, {{Ic|'''hostname'''}} 为你的主机名。
  
'''user''' '''hostname'''=NOPASSWD: /sbin/shutdown -h now
+
user hostname=NOPASSWD: /sbin/shutdown -h now,/sbin/halt,/sbin/poweroff,/sbin/reboot
'''user''' '''hostname'''=NOPASSWD: /sbin/reboot
+
  
或者合并为一行表示
+
现在你的用户可以用 {{Ic|sudo shutdown -h now}} 命令关机, {{Ic|sudo reboot}} 命令重启了。希望关闭系统的用户也可以使用 {{Ic|poweroff}} 或 {{Ic|halt}},在不想看到密码提示时使用{{ic|NOPASSWD:}}标记。
 
+
'''user''' '''hostname'''=NOPASSWD: /sbin/shutdown -h now,/sbin/reboot
+
 
+
现在你的用户可以用 {{Ic|sudo shutdown -h now}} 命令关机, {{Ic|sudo reboot}} 命令重启了。希望关闭系统的用户也可以使用 {{Ic|poweroff}} 或 {{Ic|halt}}
+
  
 
为了方便起见,你也可用给用户的 {{ic|~/.bashrc}}加入以下别名 (或加入 {{ic|/etc/bash.bashrc}} 使全系统生效):
 
为了方便起见,你也可用给用户的 {{ic|~/.bashrc}}加入以下别名 (或加入 {{ic|/etc/bash.bashrc}} 使全系统生效):

Revision as of 03:58, 30 July 2012

使用 sudo

比较安全些的方法是使用 sudo 命令。首先安装 sudo:

# pacman -S sudo

然后,在 root 用户下用 visudo 命令添加以下到 /etc/sudoers 文件的末端。替换其中的 user 为你的用户名, hostname 为你的主机名。

user hostname=NOPASSWD: /sbin/shutdown -h now,/sbin/halt,/sbin/poweroff,/sbin/reboot

现在你的用户可以用 sudo shutdown -h now 命令关机, sudo reboot 命令重启了。希望关闭系统的用户也可以使用 poweroffhalt,在不想看到密码提示时使用NOPASSWD:标记。

为了方便起见,你也可用给用户的 ~/.bashrc加入以下别名 (或加入 /etc/bash.bashrc 使全系统生效):

alias reboot="sudo reboot"
alias poweroff="sudo poweroff"
alias halt="sudo halt"

使用 ConsoleKit

查看ConsoleKit获取使用说明。你也可以使用dbus进行电源操作:

  • 关机:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
  • 重启:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
  • 挂起:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
  • 休眠 (挂起到硬盘):
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate

方法生效的前提是用户具有调用PolicyKit关机的权限。默认情况下用户组“wheel”具有此权限。可以编辑/etc/polkit-1/localauthority.conf.d/50-localauthority.conf来改变权限用户组。

注意: 使用dbus挂起和休眠需要安装upower

使用 acpid

使用acpid可以允许任何人通过电源按钮物理关机。