GNU/Linux >> Linux の 問題 >  >> Linux

Suの実行時に.bash_profileがソースされませんか?

user1というユーザーがいます 、 .bash_profileに変更が加えられています 、そのうちの1つが PATHを変更します 例: export PATH =/ some / place:$ PATH user1 としてログオンすると、この変更は正常に機能します またはsu--user1を実行します 。

しかし、 suを介してコマンドを実行しようとすると rootとして 例:

su -c test.sh oracle

(テストには echo $ PATHが含まれています )

PATHが変更されていないようです (またはルートの PATH 、 そのことについては)。 .bash_profileもコピーしてみました .profileへ 、無駄に。

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

承認された回答:

suを使用する -lなし または- bashを開始します インタラクティブであるがログインしていないシェルとして、指定したファイルのいずれからも読み取れません。 -lを使用します または- オプションを選択するか、関連する構成を /root/.bashrcに配置します 。

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

  • ログインシェル( -l <​​/ code> /-ログイン / etc / profileを読み取ります 最初に、次に最初に検出されたもの:〜/.bash_profile 〜/ .bash_login 、および〜/ .profile
  • インタラクティブであるがログインしていないシェル( -i /etc/bash.bashrcを読み取ります および〜/ .bashrc 、この順序で(-rcfile を除く) オプションが使用され、他の場所を探すように指示します。
  • 非対話型シェル(例: -lを使用せずに別のプログラム内から開始 または-i フラグ、 BASH_ENVで指定されたファイルを読み取ります 環境変数。
  • shとして実行する場合 ログインシェルとして、 / etc / profileを読み取ります および〜/ .profile 、この順序で。
  • shとして実行する場合 インタラクティブな非ログインとして、 ENVで指定されたファイルを読み取ります 。

Linux
  1. 使用できないコマンドを実行するときにパッケージのインストールを提案する

  2. [OpenStack-Devstack]:エラー:stack.shの実行時にサービスn-netが実行されていません

  3. Linux – -9プロセスを強制終了すべきではないのはいつですか?

  1. ルートとして実行している場合でも、ファイルを削除できませんか?

  2. Apache/Mysqlが実行されていません。間違い?

  3. Tomcat は実行中ですが、8080 ポートが応答しません

  1. 使用していないときにposix共有メモリを削除しますか?

  2. CronJob が実行されていません

  3. &を使用してバックグラウンドで実行すると、Python スクリプトの Nohup が機能しない