如何(以安全的方式)检查当前用户是否具有在 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