私はプログラミング決定の問題を抱えています、そして、あなたが私に解決策を見せるか、問題を解決する方法に関する私の計画が大丈夫であるかどうか私に言うことができることを望みます。
私はいくつかのMacを管理していて、ユーザがログインするたびにスクリプトを実行したいと思っています。スクリプト(まだ書いていません)はいくつかの変更をする必要があります(しないでください)。変更には管理者権限が必要ですが、スクリプトには現在ログインしている(またはログインしている)ユーザーからの情報も必要です。
通常、これはLaunchAgent / Deamonの仕事ですが、ここに問題があります。/ LaunchDeamonsのスクリプトはシステム管理者として実行されますが、システムと一緒に起動します。ユーザーがログインまたはログアウトしていることを認識していないため、GUIが表示されない場合があります。 〜/ LaunchAgentsはログインしたユーザーとして実行され、ユーザーがログインすると起動します。また、GUIが表示されることもあります。ただし、システム管理者としては動作しません。
つまり、これは私の問題です。スクリプトをrootとして実行しますが、ユーザーがログインしてGUIを彼に提示するたびに開始します。私の解決策は、2つのスクリプトを書くことです。
スクリプト1はシステム管理者として実行され、/ LaunchDeamonsにあります。これは不完全な接続のためにSocketをオープンにするでしょう(AKA "Server Socket")。
スクリプト2はログイン中のユーザーとして実行され、〜/ LaunchAgentsにあります。ユーザーにGUIを提示し、ソケット接続を介してスクリプト1に情報を送信します。
これは最も信頼できる/直接的な解決策であるとは思われませんが、他には考えられません。私は他のプログラムがどのようにこの問題を解決するのか(例えば、munki、これはユーザーにGUIを提示するがプログラムをシステム管理者としてインストールする)を見つけようとしましたが、どうやって解決できたかわかりません。
私はこれについていくつかのコメントを喜んでいます! よろしく、クリスチャン
シモンズ:私はPythonを使うつもりです。