を使用して別のプロセスを起動するアプリケーション (正確には /Library/StartupItems 内のデーモン) をルートとして実行していsystem("open /Applications/MyAppName.app")
ます。これは、特定のコンピューターで MyAppName が現在のユーザーの下ではなく、ルートとして実行されることを除いて、正常に機能します。
これがなぜなのか、アプリケーションを常に現在のユーザーとして起動する方法を理解しようとしています。
この問題は、Open/Active ディレクトリの組み合わせを実行しているエンタープライズ サイトで発生するようです。私はこれらのマシンへのアクセスがいくらか制限されているので、より多くの時間を要求する前に、少なくともいくつかの仮説を立てようとしています.
私が持っているもう1つの手がかりは、これらのコンピューターの少なくとも1つで、アクティビティモニターを開いて「Finder」プロセスを調べると、「ユーザー:」セクションにはユーザー名が表示されますが、ユーザーIDは表示されないということです(「(UID)」セクション完全に欠落しています)。
また、親プロセスは、ほとんどの標準アプリケーションのようにlaunchd (1)
" " ではなく" " として表示されます。launchd (95)
このlaunchdのインスタンスは、ログインユーザーとして実行されるlaunchdの他のインスタンスと比較して、コンピューターが起動されてルートとして実行されるたびに最初に起動される実行であると私は信じています。
明らかなセキュリティ上の懸念に加えて、同時にログインしている 2 人のユーザーに対して開いたり、表示したりできるように、アプリケーションを root として実行しないようにする必要があります。
これを引き起こしている可能性のあるもの、またはそれを解決する方法について何か考えがある人はいますか?