suを実行すると、.bash_profileを取得できませんでした。

suを実行すると、.bash_profileを取得できませんでした。

user1たとえば、それを変更したユーザーがあり、.bash_profileそのうちの1人が変更されました。PATH例: export PATH=/some/place:$PATH。ログインuser1または実行するとsu - user1

suただし、たとえばasでコマンドを実行しようとすると、root次のようになります。

su -c test.sh oracle

(テスト含むecho $PATH

PATH修正されたもの(またはルートされたPATHもの)ではないようです。また、.bash_profileにコピーしようとしましたが、.profile成功しませんでした。

なぜこれが起こるのですか?

ベストアンサー1

su対話型の非ログインシェルなしで、-lまたは対話型の非ログインシェルとして実行されると、-指定したファイルからは読み取られません。または、オプションをbash使用するか、関連する設定をに入れます。-l-/root/.bashrc

構成ファイルの簡単な要約:

  • ログインシェル(-l/ --login)が/etc/profile最初に読み込まれ、次に最初のエントリである、およびが読み込ま~/.bash_profile~/.bash_loginます~/.profile
  • インタラクティブであるがログインではないシェル(-i)は、その順序で合計を読み取ります/etc/bash.bashrc(このオプションを使用して他の場所を表示するように指示しない限り)。 ~/.bashrc--rcfile
  • -lまたは、フラグなしで他のプログラムから起動されたものなどの非対話型シェルは、-i環境変数で指定されたファイルを読み取りますBASH_ENV
  • ログインシェルで実行すると、sh合計が順次読み込まれます/etc/profile~/.profile
  • 対話型の非ログインで実行するshENV

おすすめ記事