web-dev-qa-db-ja.com

ルートの.bashrcがSudo -iで実行されない

Ubuntu 11.10サーバーの1つで、Sudo -iを使用してルートユーザーになると、ルートの.bashrcが実行されません。私の知る限り、関連する構成が同一である他のすべてのサーバーでは、適切に実行されています。

私が確認したものは次のとおりです。

  • .bashrcは/ rootに存在し、root:rootが所有、パーミッション644
  • / etc/profileおよび/etc/bash.bashrc are実行中
  • ルートのシェルは「/ bin/bash」に設定されます
  • source .bashrcで.bashrcを実行できます。その後、そのセッションではすべてが正常になります。
  • ルートにsudoした後、bashと入力してbashを手動で実行し、.bashrcを実行することもできます。
  • psは、私のルートログインで実行中のシェルがbashであることを確認します。

他に確認することはありますか?

11
Mike Scott

ファイルの存在と内容を確認する必要があります/root/.profile

初期化ファイル~/.bashrcはログインシェルから取得されません。Ubuntuでは~/.profileから取得されます

さらに、ファイル/root/.profileは他のユーザーの場合と同様に/etc/skel/からコピーされるのではなく、パッケージ/usr/share/base-files/dot.profileのインストール中にbase-filesからコピーされます。

9
enzotib

私の場合は、もう1つ注意すべき状況があります。

.bash_profileファイルを作成する場合、このファイルは.bashrcまたは.profileをロード/実行する責任を引き継ぎます。

ターミナルを開いて"Sudo -i"を使用すると、コマンドエイリアス、ファイルリストの色付けなどが突然なくなった場合、このファイルがホームディレクトリに存在するかどうかを再確認し、名前を変更してコンソールを再度開きます。これで修正されるはずです。

3
Pawel Barcik