web-dev-qa-db-ja.com

「Sudosu-」と「Sudo-i」の違いは何ですか?

重複の可能性:
Sudo-iとSudosuの違いは何ですか-

私は両方のコマンドがルートシェルを獲得する結果になることを知っています。しかし、いくつかの違いがあります。一部のサーバー(例:プロンプトは異なります:

nomike@testerver:~> Sudo -i
root@testerver:~> logout
nomike@testerver:~> Sudo su -
[root@testerver ~]# 

したがって、「。bashrc」、「。bash_profile」、「。profile」の処理はどういうわけか違うと思います。

一方はログインシェルを呼び出し、もう一方は呼び出さないのですか?

6
nomike

Sudo -iSudo su -の両方で、インタラクティブなログインシェルを取得できます。表示されている違いは、Sudoが環境変数(この場合はPS1)を処理するように構成されているためです。 PS1はルートのPS1とは異なります。/etc/sudoersを調べると、PS1を含むenv_keep行が見つかる可能性があります。

Defaults    env_keep += "MAIL PS1 PS2 QTDIR ..."

これは、実行中のコマンドの環境でPS1環境変数を(とりわけ)保持するようにSudoに指示するため、これが表示されます(さまざまなプロンプト)。

Sudo su -を実行すると、変更された環境がsuに渡され、ログインシェルが実行されます。suは環境を強制的に同じにすることはないため、rootの初期化ファイルにあるものでセットアップされます。 。

5
user9517