
root権限でアプリケーションを実行する必要がありますが、アプリケーションは元のユーザーのプロファイルにアクセスする必要があります。したがって、sudoでアプリケーションを実行すると、アプリケーションが正しく実行されません。
元のログインユーザーのプロファイルを引き続き使用するようにroot権限でアプリケーションを起動するにはどうすればよいですか?
Mac OS X 10.10です
答え1
アプリケーションは通常、環境変数が表すディレクトリから各ユーザーファイルを読み込みますHOME
。
デフォルトでは、sudoの値は変更されないため、HOME
元のユーザーのホームディレクトリを指しています。これをターゲットユーザーのホームディレクトリに変更するには、sudoのオプションがいくつかあるので、どちらもオンになっていないことを確認してください。
always_set_home
ファイルでこのオプションを設定しないでくださいsudoers
。env_reset
オプションを設定した場合は、そのオプションをリストにHOME
含めます。env_keep
-H
または、コマンドラインオプションを-s
渡さないでください。-i
1 つのコマンドのオプションを設定するには、sudoers
次のようなものを使用します。
Defaults !myapp env_keep+=HOME,!always_set_home
変数が保持されているがアプリケーションがそこを見つけることができない場合は、ホームディレクトリで有効なUIDを見つけるのではなく、変数にHOME
注意を払うように指示するアプリケーション固有の方法を見つける必要があります。HOME
アプリケーションはrootとして実行する必要がありますが、実際のユーザーに属するファイルを読むことは一般的ではありません。たぶん、これらのファイルはシステム設定ディレクトリにあるべきですか?