重複の可能性:
Sudo-iとSudosuの違いは何ですか-
私は両方のコマンドがルートシェルを獲得する結果になることを知っています。しかし、いくつかの違いがあります。一部のサーバー(例:プロンプトは異なります:
nomike@testerver:~> Sudo -i
root@testerver:~> logout
nomike@testerver:~> Sudo su -
[root@testerver ~]#
したがって、「。bashrc」、「。bash_profile」、「。profile」の処理はどういうわけか違うと思います。
一方はログインシェルを呼び出し、もう一方は呼び出さないのですか?
Sudo -i
とSudo su -
の両方で、インタラクティブなログインシェルを取得できます。表示されている違いは、Sudoが環境変数(この場合はPS1)を処理するように構成されているためです。 PS1はルートのPS1とは異なります。/etc/sudoersを調べると、PS1を含むenv_keep
行が見つかる可能性があります。
Defaults env_keep += "MAIL PS1 PS2 QTDIR ..."
これは、実行中のコマンドの環境でPS1
環境変数を(とりわけ)保持するようにSudoに指示するため、これが表示されます(さまざまなプロンプト)。
Sudo su -
を実行すると、変更された環境がsu
に渡され、ログインシェルが実行されます。suは環境を強制的に同じにすることはないため、rootの初期化ファイルにあるものでセットアップされます。 。