sudoスクリプト(OSX)でログインしたユーザーとしてどのように実行しますか?

sudoスクリプト(OSX)でログインしたユーザーとしてどのように実行しますか?

このようにコンテキストを切り替える方法はありますか?

私の特別なケースでは、スクリプトは特定のタスクを実行するためにsudo権限のみを必要とするインストーラのインストール後のスクリプトでした。必要ログインしたユーザーは、スクリプトの最後でLaunchAgentを実行します。

このエージェントがsudo権限で起動すると、ユーザー固有のログや他のリソース(ユーザーディレクトリにあります)へのパスが歪みます。

ベストアンサー1

これは私にとって効果的です。

USER_NAME=$(printf '%s' "${SUDO_USER:-$USER}")

sudo -u $USER_NAME <command-to-exec-in-nonroot-context>

おすすめ記事