sudo -iとsudo su-の違いは何ですか-


回答:


30

機能的に同じものを提供するかもしれませんが、「sudo -i」はより軽量で、環境内で便利な後方参照を保持しているようです。

'ps auxf'を見ると、追加のプロセスを確認できます(fはフォレストビューを提供します)

sudo -i はこのプロセスツリーを生成します

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4675  0.6  0.0  19512  2260 pts/0    S+   23:42   0:00  |           \_ -bash

sudo su-このプロセスツリーを生成します

jkrauska  4480  0.0  0.0  76828  1656 ?        S    23:38   0:00  |   \_ sshd: jkrauska@pts/0
jkrauska  4482  0.0  0.0  21008  3816 pts/0    Ss   23:38   0:00  |       \_ -bash
root      4687  0.5  0.0  43256  1488 pts/0    S    23:42   0:00  |           \_ su -
root      4688  0.5  0.0  19508  2252 pts/0    S+   23:42   0:00  |               \_ -su

それらは同じbashプロセスpid、4822から開始しますが、そのsu-は別のステップを生成するように見えることに注意してください。

最初の「sudo」はすでにアクセスレベルをルートに引き上げています。sudo内でユーザー名を指定せずにsuを実行すると、現在のユーザーがrootに2回変更されます。

これを調べる別の方法は、両方のコマンドをstrace -fで実行することです。

strace -f -o sudoi sudo -i

strace -f -o sudosu sudo su -

これらの2つのstraceを比較すると、sudo su-に対してより多くの実行が実行されていることがわかります。

もう一つ。

sudo -iは、SUDOによって設定された追加の環境変数を維持します。

SUDO_USER=jkrauska
SUDO_UID=1000
SUDO_COMMAND=/bin/bash
SUDO_GID=1000

sudo su-これらの変数を上書きします。


おかげで、正解として投票しました。もう1つの質問、それでsudo su -無意味ですか?
ハワード

SUDOの後方参照を上書きしたい場合に便利です。したがって、その場合は無意味ではありません。
ジョエルK

また、引数の処理、環境変数の処理、および非rootユーザーになるときのセキュリティにも大きな違いがあります。私がここに追加したものを参照してください:serverfault.com/q/601140/102814
クレイグリンガー14年

1

ショットの答え:いいえ、それらは同じではありません。

長い答え: sudoとsu-同じタスクを実行する異なるプログラムであり、ルート特権に昇格します。

suは、Linuxシステムでルートになるための事実上の方法でした。しかし、常に特権を分離し、監査情報を残す必要がありました。また、suを実行する場合、実行することはすべてrootとして実行され、そのような権限を持つことは危険です。ここで、sudoが助けになりました。

sudoには、suにはないいくつかの特性があります。sudoの重要な要素は、rootとして「1つの」コマンドを実行し、通常のユーザーに特権をドロップする機能です。 例:ルートが所有するファイルを削除します。

sudo rm /root/someFile

別のコマンドの前にsudoコマンドを使用するたびにsudoがルートに昇格するため、このコマンドはファイルを消去します。次に実行したコマンドは、通常のユーザーのように実行されます(最初にsudoコマンドを追加しない限り)。これにより、管理タスクを完了し、すぐに特権をドロップして、危険な状態を回避できます。

sudoは、ユーザーが実行できるプログラムのセットを制限したり、sudoで実行されたコマンドをログに記録したりするなど、他の利点も提供します。詳細については、sudoの概要

あなたが行う場合はsuコマンドを-または-iをSUDOあなたは同じことを行います。これはrootになりつつありますが、susudoは完全に異なり、システム管理者として異なるツールを提供することに注意してください。個人的に私はsuを実行することはありません-私のpamポリシーはそれを禁止し、誰も実行することを許可しません。私のシステムでは、追加の利点のsudoの原因を常に使用する必要があります。

詳細:sudoの使用と有効化


suまた、単に単一のコマンドを実行することができます:su -c 'command ...'
Eliahケーガン

質問は間違いについてだったsudo -isudo su -、いない間sudosu
アレッシオガエータ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.