回答:
私sudo -sは「より良い」とは思いません、ただ違うだけです。
sudo -s
あなたの$ HOMEディレクトリを保持するので、プログラムを起動すると、あなたは(ルートではなく)設定ファイルなどを使用します。欠点:$ HOMEディレクトリ内のファイルの所有権も変更できます。典型的な例は.Xauthorityファイルですが、それで問題を経験したことはありません。
sudo su または sudo -i
プログラムは、ルートのホームディレクトリとその構成ファイルを使用します。これはもっと直感的かもしれませんが、自分用に設定した設定(エイリアス、bash履歴など)を使用しないことも意味します。
別に環境変数ですでに述べた違いから、私が見つけsudo su、あなたが求めているので、愚かな無駄なsudo実行するsuルートとして、そしてルートとしてシェルを実行するようにお願いします。最初のプログラムでシェルを提供できるのに、なぜプログラムにルートシェルを提供するようにプログラムに要求するのですか?それは実用的な意味で重要ですか?いいえ、私はただつまらないです。
sudo surootになるために使用している場合、はい、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/...