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

From ArchWiki
Jump to: navigation, search
(update)
(使用 dbus 进行电源操作)
(13 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[Category:简体中文]]
 
[[Category:简体中文]]
 
[[Category:Security (简体中文)]]
 
[[Category:Security (简体中文)]]
{{i18n|Allow Users to Shutdown}}
+
[[es:Allow Users to Shutdown]]
 +
[[en:Allow Users to Shutdown]]
 +
[[id:Allow Users to Shutdown]]
 +
[[it:Allow Users to Shutdown]]
 +
[[ru:Allow Users to Shutdown]]
 +
[[tr:Kullanıcının bilgisayarı kapatabilmesine izin verme]]
 +
[[uk:Allow Users to Shutdown]]
 +
{{TranslationStatus (简体中文)|Allow_Users_to_Shutdown|2012-12-15|239434}}
 +
 
 +
== 使用 systemd-logind ==
 +
 
 +
如果你正在使用Arch的默认 [[systemd]],非远程会话中的用户可以使用电源相关的命令只要安装了 {{pkg|polkit}} 并且 [[xinitrc#Preserving the session|会话不中断]]。关机命令:
 +
 
 +
# systemctl poweroff
 +
 
 +
按下待机、关机和休眠按钮和盖下显示屏的事件也由 logind 处理(参见 {{ic|man logind.conf}})。
  
 
== 使用 sudo ==
 
== 使用 sudo ==
比较安全些的方法是使用 sudo 命令。首先安装 sudo:
+
 
 +
首先安装 sudo:
 
  # pacman -S sudo
 
  # pacman -S sudo
  
 
然后,在 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|~/.bashrc}},你可以把这些[[Bash#Aliases|别名]]添加到里面(或者添加到 {{ic|/etc/bash.bashrc}} 使全系统生效):
 
+
现在你的用户可以用 {{Ic|sudo shutdown -h now}} 命令关机, {{Ic|sudo reboot}} 命令重启了。希望关闭系统的用户也可以使用 {{Ic|poweroff}} 或 {{Ic|halt}}。
+
 
+
为了方便起见,你也可用给用户的 {{ic|~/.bashrc}}加入以下别名 (或加入 {{ic|/etc/bash.bashrc}} 使全系统生效):
+
  
 
  alias reboot="sudo reboot"
 
  alias reboot="sudo reboot"
Line 24: Line 35:
 
  alias halt="sudo halt"
 
  alias halt="sudo halt"
  
== 使用 ConsoleKit ==
+
=== 使用 dbus 进行电源操作 ===
查看[[ConsoleKit]]获取使用说明。你也可以使用dbus进行电源操作:
+
 
 +
可以使用 dbus 进行电源操作:
 
*关机:
 
*关机:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
+
{{bc|1=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
+
{{bc|1=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
+
{{bc|1=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
+
{{bc|1=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来改变权限用户组。
+
方法生效的前提是用户具有调用[[PolicyKit]]关机的权限。默认情况下用户组“wheel”具有此权限。可以编辑{{ic|/etc/polkit-1/localauthority.conf.d/50-localauthority.conf}}来改变权限用户组。
  
 
{{注意|使用dbus挂起和休眠需要安装{{Pkg|upower}}。}}
 
{{注意|使用dbus挂起和休眠需要安装{{Pkg|upower}}。}}

Revision as of 13:44, 11 August 2013

翻译状态: 本文是英文页面 Allow_Users_to_Shutdown翻译,最后翻译时间:2012-12-15,点击这里可以查看翻译后英文页面的改动。

使用 systemd-logind

如果你正在使用Arch的默认 systemd,非远程会话中的用户可以使用电源相关的命令只要安装了 polkit 并且 会话不中断。关机命令:

# systemctl poweroff

按下待机、关机和休眠按钮和盖下显示屏的事件也由 logind 处理(参见 man logind.conf)。

使用 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"

使用 dbus 进行电源操作

可以使用 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可以允许任何人通过电源按钮物理关机。