回答:
機能的に同じものを提供するかもしれませんが、「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-これらの変数を上書きします。
ショットの答え:いいえ、それらは同じではありません。
長い答え: 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になりつつありますが、suとsudoは完全に異なり、システム管理者として異なるツールを提供することに注意してください。個人的に私はsuを実行することはありません-私のpamポリシーはそれを禁止し、誰も実行することを許可しません。私のシステムでは、追加の利点のsudoの原因を常に使用する必要があります。
詳細:sudoの使用と有効化
suまた、単に単一のコマンドを実行することができます:su -c 'command ...'
                    sudo -iとsudo su -、いない間sudoとsu。
                    
sudo su -無意味ですか?