sudo -sがsudo suよりも優れているのはなぜですか?


28

ここでは、Ask Ubuntuで、のsudo -s代わりにを使用することに関する好みについて多くのコメントを見てきましたsudo su

私にとって、この2つのコマンドはまったく同じです。しかし、なぜsudo -sより良いことになっていますか?


1
私が考えるsudo -isudo suよりも優れているsudo -s理由のために、ここに述べた:ubuntuforums.org/showpost.php?p=6188826&postcount=4をも:これはの可能複製であるsuperuser.com/questions/29/...
アレンジ

私はこの質問がunix.stackexchange.comに移動されるべきだと思う
IGI

回答:


26

sudo -sは「より良い」とは思いません、ただ違うだけです。

sudo -s

あなたの$ HOMEディレクトリを保持するので、プログラムを起動すると、あなたは(ルートではなく)設定ファイルなどを使用します。欠点:$ HOMEディレクトリ内のファイルの所有権も変更できます。典型的な例は.Xauthorityファイルですが、それで問題を経験したことはありません。

sudo su または sudo -i

プログラムは、ルートのホームディレクトリとその構成ファイルを使用します。これはもっと直感的かもしれませんが、自分用に設定した設定(エイリアス、bash履歴など)を使用しないことも意味します。


1
さて、私は今その違いを理解しています。ありがとうございました!
fitojb

1
「sudo su」は「sudo -i」と同等ではありません。「sudo -i」は「sudo su-」と同等ですが、「sudo
su-

13

なぜならsudo -s、環境変数、特にを変更しないため$HOMEですHOME=/home/USER。これを使用すると、起動するプログラムがユーザーのホームディレクトリにアクセスしようとしたときに、副作用が発生する可能性のあるものにsudo su変わりHOME=/rootます。

だから、基本的にそれはようなものだsudogksudoグラフィカルなプログラムを実行するとき。


5

別に環境変数ですでに述べた違いから、私が見つけsudo su、あなたが求めているので、愚かな無駄なsudo実行するsuルートとして、そしてルートとしてシェルを実行するようにお願いします。最初のプログラムでシェルを提供できるのに、なぜプログラムにルートシェルを提供するようにプログラムに要求するのですか?それは実用的な意味で重要ですか?いいえ、私はただつまらないです。


あなたは正しい、それはやや冗長です。
-fitojb

まあ、完全にそうではありません:あなたがsudo surootになるために使用している場合、はい、sudo -iたとえばgo ただし、別のユーザーになりたい場合は役立ちますsudo su - myuser
hggdh

2
別の違いがあります:sudo -iに変更され/rootたディレクトリとsudo suあなたがいるディレクトリに留まります。
ローレン

1
@hggdh 、sudo -u myuser.
-psusi

3

シェルを持たないユーザーとしてログインする場合を考えると、他の回答には同意しません。これは、ユーザーがサービスに割り当てられている非常に一般的なケースです。

「sudo su」を使用すると、ユーザーが指定したシェルが起動します。ただし、サーバープロセスに割り当てられたユーザーの場合、シェルは/ usr / bin / falseであり、ログは失敗します。代わりに、次のように入力する必要があります。

sudo -sHu <server-user>

ユーザーにシェルが割り当てられていない場合でも、ログインしてホームパスにcdします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.