Allow users to shutdown (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 Allow users to shutdown翻译。上次翻译日期:2020-02-27。如果英文版本有所更改,则您可以帮助同步翻译。

按键和翻转屏幕事件

睡眠、休眠和关机按键的事件以及笔记本屏幕翻转事件由 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 关闭系统。

创建别名

可以将下面 aliases 加入用户的 ~/.bashrc 或系统配置 /etc/bash.bashrc

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

软件包 systemd-sysvcompat 会自动创建对应的软链接。