現在のユーザーの代わりに.bash_profileを持つ別のユーザーとしてコマンドを実行するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/9394175

質問

スタートアップスクリプト(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?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top