スタートアップスクリプト(rc.local)でroot以外のユーザーとしてコマンドを実行したいとします。実行したいコマンドは、実際にはroot以外のユーザーの.bash_profileのエイリアスです。私は使用しようとしました現在のユーザーの代わりに.bash_profileを使用して別のユーザーとしてコマンドを実行するにはどうすればよいですか?
su - myuser -c aliased_cmd
これは動作しません。
su - myuser
# wait for login...
aliased_cmd
と入力しても問題ありませんが、実際のスクリプトでは適切ではありません。もちろん、実際のrc.localファイルに使用したいエイリアスや機能をコピーすることもできますが、これはちょっとばかげているようです...おそらく私が知らないオプションやsudoを使う方法がありますこの?
aliasコマンドを実行する前に、「ソース/path-to-non-root-user-home-dir/.bash_profile」を実行しようとしたがありますか? – hovanessyan
これは良いアイデアでしたが、実際にはこれがうまくいかないという事実が何とか問題を起こすかもしれません。 su - myuser -c "source .bash_profile; aliased_cmd" – Jesse
'--preserve-environment'または' su -c 'echo "$ SHELL"' myuser'を試したことがありますか?コマンドがBashシェルで実行されていない可能性があります。 – l0b0