回答:
私sudo -s
は「より良い」とは思いません、ただ違うだけです。
sudo -s
あなたの$ HOMEディレクトリを保持するので、プログラムを起動すると、あなたは(ルートではなく)設定ファイルなどを使用します。欠点:$ HOMEディレクトリ内のファイルの所有権も変更できます。典型的な例は.Xauthority
ファイルですが、それで問題を経験したことはありません。
sudo su
または sudo -i
プログラムは、ルートのホームディレクトリとその構成ファイルを使用します。これはもっと直感的かもしれませんが、自分用に設定した設定(エイリアス、bash履歴など)を使用しないことも意味します。
別に環境変数ですでに述べた違いから、私が見つけsudo su
、あなたが求めているので、愚かな無駄なsudo
実行するsu
ルートとして、そしてルートとしてシェルを実行するようにお願いします。最初のプログラムでシェルを提供できるのに、なぜプログラムにルートシェルを提供するようにプログラムに要求するのですか?それは実用的な意味で重要ですか?いいえ、私はただつまらないです。
sudo su
rootになるために使用している場合、はい、sudo -i
たとえばgo ただし、別のユーザーになりたい場合は役立ちますsudo su - myuser
。
sudo -i
に変更され/root
たディレクトリとsudo su
あなたがいるディレクトリに留まります。
sudo -u myuser
.
シェルを持たないユーザーとしてログインする場合を考えると、他の回答には同意しません。これは、ユーザーがサービスに割り当てられている非常に一般的なケースです。
「sudo su」を使用すると、ユーザーが指定したシェルが起動します。ただし、サーバープロセスに割り当てられたユーザーの場合、シェルは/ usr / bin / falseであり、ログは失敗します。代わりに、次のように入力する必要があります。
sudo -sHu <server-user>
ユーザーにシェルが割り当てられていない場合でも、ログインしてホームパスにcdします。
sudo -i
かsudo su
よりも優れているsudo -s
理由のために、ここに述べた:ubuntuforums.org/showpost.php?p=6188826&postcount=4をも:これはの可能複製であるsuperuser.com/questions/29/...