跨平台方式确定当前用户是否有权关闭计算机(无需实际尝试关闭)

跨平台方式确定当前用户是否有权关闭计算机(无需实际尝试关闭)

如何(以安全的方式)检查当前用户是否具有在 Unix 和 Linux 上关闭系统所需的权限?

我正在编写一个脚本,需要检查当前用户是否具有关闭系统所需的权限。但是,当然,我想确定这一点实际上试图关闭系统。

理想情况下,我想要一个能够在尽可能多的 Unix 和 Linux 发行版上运行的解决方案。

我可以在脚本中执行什么来检查当前用户是否有权关闭系统?

答案1

我无法判断该-k选项是否在所有 unixoid 平台上都可用,但您可以尝试一下并检查退出代码。但这可能会向所有终端发出警告。

$ shutdown -k -r now; echo $?
shutdown: you must be root to do that!
Usage:    shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
                  -k:      don't really shutdown, only warn.
[...]
1
$ sudo shutdown -k -r now; echo $?

Broadcast message from root@macalla (pts/2) (Mon Oct  3 11:25:09 2022):

The system is going down for reboot NOW!

Shutdown cancelled.
0

相关内容