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

From ArchWiki
Jump to: navigation, search
(Created page with 'Category:Security (English) Category:HOWTOs (English) {{i18n_links_start}} {{i18n_entry|English|Allow_users_to_shutdown}} {{i18n_entry|简体中文|允许普通用户关...')
 
(update interlanguage links)
(Tag: wiki-scripts)
 
(41 intermediate revisions by 14 users not shown)
Line 1: Line 1:
[[Category:Security (English)]]
+
[[Category:Security (简体中文)]]
[[Category:HOWTOs (English)]]
+
[[en:Allow users to shutdown]]
{{i18n_links_start}}
+
[[es:Allow users to shutdown]]
{{i18n_entry|English|Allow_users_to_shutdown}}
+
[[id:Allow users to shutdown]]
{{i18n_entry|简体中文|允许普通用户关机}}
+
[[it:Allow users to shutdown]]
{{i18n_entry|Italiano|Allow_users_to_shutdown (Italiano)}}
+
[[ja:ユーザーにシャットダウンを許可]]
{{i18n_entry|Русский|Как разрешить пользователям выключать компьютер}}
+
[[ru:Allow users to shutdown]]
{{i18n_entry|Українська|Як дозволити користувачу вимкнути комп'ютер}}
+
{{TranslationStatus (简体中文)|Allow_Users_to_Shutdown|2017-08-29|463509}}
{{i18n_entry|Indonesia|Shutdown_sebagai_users(Indonesia)}}
 
{{i18n_links_end}}
 
  
== 方法一: setuid ==
+
== 按键和翻转屏幕事件 ==
如果你想让用户有关机和重启的权力,你可以修改 halt 命令的许可权限,reboot 命令是 halt 命令的一个symlink,所以它无需修改。root用户登录输入:
 
  
# chmod +s /sbin/halt
+
睡眠、休眠和关机按键的事件以及笔记本屏幕翻转事件由 ''logind'' 处理,请参考 [[Power management#ACPI events]].
  
注意这样做被认为是一种对安全的威胁,因为包括root在内的所有用户都可以关机和重启了。
+
== 使用 systemd-logind ==
  
'''Topic:''' http://bbs.archlinux.org/viewtopic.php?id=2787
+
如果使用 Arch 默认的 [[systemd]],安装了 {{pkg|polkit}},只要会话[[General troubleshooting#Session_permissions|没有中断]],非远程用户就可以使用电源相关的命令。
  
== 方法二: sudo ==
+
要检查会话是否活跃:
比较安全些的方法是使用 sudo 命令。首先安装 sudo:
+
  $ loginctl show-session $XDG_SESSION_ID --property=Active
  # pacman -Sy sudo
 
  
然后,在 root 用户下用 visudo 命令添加以下到 /etc/sudoers 文件的末端。替换其中的 user 为你的用户名, hostname 为你的主机名。
+
关机命令:
  
  '''user''' '''hostname'''=NOPASSWD: /sbin/shutdown -h now
+
  $ systemctl poweroff
'''user''' '''hostname'''=NOPASSWD: /sbin/reboot
 
  
或者合并为一行表示
+
重启命令:
 +
$ systemctl reboot
  
'''user''' '''hostname'''=NOPASSWD: /sbin/shutdown -h now,/sbin/reboot
+
按下待机、关机和休眠按钮和盖下显示屏的事件也由 logind 处理(参见 {{man|5|logind.conf}})。
  
现在你的用户可以用 sudo shutdown -h now 命令关机, reboot 命令重启了。
+
== 使用 sudo ==
  
{{Box Note|For users wishing to power down a system <tt>poweroff</tt> or <tt>shutdown -P now</tt> may be preferable to <tt>shutdown -h now</tt> as it leaves no doubt as to the intention of the user initiated command.|}}
+
首先安装 {{Pkg|sudo}}, 给用户 [[sudo|sudo 权限]] 或者设置用户仅能执行关机命令,以 root 用户执行 {{ic|visudo}} 修改 [[sudo|/etc/sudoers]],替换 ''user'' 和 ''hostname''。
  
 +
''user'' ''hostname'' =NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl halt,/usr/bin/systemctl reboot
  
 
+
现在这个用户可以用 {{Ic|sudo shutdown -h now}} 命令关机, {{Ic|sudo reboot}} 命令重启了。用户也可以使用 {{Ic|poweroff}} 或 {{Ic|halt}} 关闭系统。
== 方法三: Xfce ==
 
在Xfce下,如果你希望用户利用Hal关机,需要安装 sudo 。然后用 visudo -f 命令添加以下内容到 /etc/sudoers 中
 
 
 
* 对所有用户:
 
%users '''hostname'''=NOPASSWD:/usr/lib/xfce4/xfsm-shutdown-helper
 
* 对单一用户:
 
'''user''' '''hostname'''=NOPASSWD:/usr/lib/xfce4/xfsm-shutdown-helper
 
 
 
替换其中的 user 为你的用户名, hostname 为你的主机名(你可以用hostname命令得到它)。
 
这样你定义了的用户的“关机”和“重启”选项就激活了。
 

Latest revision as of 08:07, 13 December 2017

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

按键和翻转屏幕事件

睡眠、休眠和关机按键的事件以及笔记本屏幕翻转事件由 logind 处理,请参考 Power management#ACPI events.

使用 systemd-logind

如果使用 Arch 默认的 systemd,安装了 polkit,只要会话没有中断,非远程用户就可以使用电源相关的命令。

要检查会话是否活跃:

$ loginctl show-session $XDG_SESSION_ID --property=Active

关机命令:

$ systemctl poweroff

重启命令:

$ systemctl reboot

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

使用 sudo

首先安装 sudo, 给用户 sudo 权限 或者设置用户仅能执行关机命令,以 root 用户执行 visudo 修改 /etc/sudoers,替换 userhostname

user hostname =NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl halt,/usr/bin/systemctl reboot

现在这个用户可以用 sudo shutdown -h now 命令关机, sudo reboot 命令重启了。用户也可以使用 poweroffhalt 关闭系统。