現在のユーザーにコンピュータをシャットダウンする権限があるかどうかを確認するクロスプラットフォーム方法(実際にシャットダウンしようとしない)

現在のユーザーにコンピュータをシャットダウンする権限があるかどうかを確認するクロスプラットフォーム方法(実際にシャットダウンしようとしない)

現在のユーザーがUnixとLinuxでシステムをシャットダウンするために必要な権限を持っているかどうか(安全な方法で)確認する方法は?

現在、ユーザーにシステムをシャットダウンするために必要な権限があることを確認する必要があるスクリプトを作成しています。しかし、もちろん確認したいです。今後実際にシステムをシャットダウンしようとしています。

理想的には、できるだけ多くのUnixとLinuxのディストリビューションで実行されるソリューションが欲しいです。

現在のユーザーがシャットダウン権限を持っているかどうかを確認するためにスクリプトで何ができますか?

答え1

このオプションがすべてのUnixoidプラットフォームで利用可能かどうかはわかりませんが、-k試してみて終了コードを確認できます。ただし、これによりすべての端末に警告が発生する可能性があります。

$ 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

関連情報