いくつかの構成を実行している python スクリプトがありnagios
ます。スクリプトは、完全な sudo 権限を持つユーザーとして実行されています (ユーザーは、パスワード プロンプトなしで、sudo を使用して任意のコマンドを実行できます)。構成の最後の手順は次のとおりです。
open(NAGIOS_COMMAND_FILE, 'a').write(cmdline)
はNAGIOS_COMMAND_FILE
root のみが書き込み可能であるため、このコマンドは root で実行する必要があります。これを達成する方法は 2 つあります (どちらも不十分です)。
- スクリプト全体をルートとして実行します。スクリプトのエラーは完全なルート権限で実行されるため、これを行うのは好きではありません。
open(NAGIOS_COMMAND_FILE, 'a').write(cmdline)
コマンドを別のスクリプトに入れ、ライブラリを使用してそのsubprocess
スクリプトを sudo で呼び出します。1つのコマンドを実行するためだけに余分なスクリプトを作成するのは好きではありません。
現在のスクリプトで、単一のコマンドだけで実行中のユーザーを変更する方法はないと思いますか、それとも間違っていますか?