現在のユーザーの代わりに.bash_profileを持つ別のユーザーとしてコマンドを実行するにはどうすればよいですか?
-
29-10-2019 - |
質問
スタートアップスクリプト(rc.local)で、rootでないユーザーとしてコマンドを実行したいと思います。私が実行したいコマンドは、実際には非ルートユーザーの.bash_profileのエイリアスです。私は使用しようとしました
su - myuser -c aliased_cmd
しかし、これはうまくいきません。単に入力する場合
su - myuser
# wait for login...
aliased_cmd
正常に動作しますが、明らかにこれは実際のスクリプトでは適切ではありません。もちろん、実際のrc.localファイルに使用したいエイリアスと機能をコピーすることができますが、これは少しばかげているようです...おそらく私が知らないオプションやsudoを使用する方法があるかもしれませんこれ?
解決
プロファイルを調達した後、以下を含めてください
shopt -s expand_aliases
他のヒント
引用 man su
:
使用する場合、最後のSUオプションとして指定する必要があります。
最後のオプションではない場合に何が起こるかを指定しません。また、概要では、ユーザー名はです 後 すべてのオプション。
やってみました su -c aliased_cmd - myuser
また su -l -c aliased_cmd myuser
?
所属していません StackOverflow