在 Arch Linux 上,使用 systemd,以下命令都是指向 的符号链接systemctl:
/usr/bin/telinit
/usr/bin/poweroff
/usr/bin/runlevel
/usr/bin/reboot
/usr/bin/halt
/usr/bin/shutdown
Run Code Online (Sandbox Code Playgroud)
我发现他们在授权方面的行为令人困惑:
$ shutdown
Must be root.
$ halt
Must be root.
$ telinit 3
# Asks for Polkit authorization
Run Code Online (Sandbox Code Playgroud)
既不poweroff也不reboot要求授权。poweroff实际上并没有关闭我的系统,笔记本电脑保持开机状态,屏幕上有文字说明它正在关闭 - 无限期。
我没有修改过 Polkit 规则,所以我想知道为什么他们的行为是这样。
wheel./etc/polkit-1/rules.d 似乎只包含一个默认规则集:
# tail /etc/polkit-1/rules.d/*
// DO NOT EDIT THIS FILE, it will be overwritten on update
//
// Default rules for polkit
//
// See the polkit(8) man page …Run Code Online (Sandbox Code Playgroud)