Rootユーザーはすべての特権を持つことができます。しかし、通常のユーザーは、suまたはSudoコマンドと自分のパスワードを使用して、rootのようにアクセスできます。
違いは何ですか?
su
(およびSudo)コマンドは伝統的にrootのパスワードを必要とします。ただし、Sudo
を設定して、通常のユーザーが/etc/sudoers
を(rootとして、できればvisudo
を使用して)変更することにより、自分のパスワードでroot権限を取得できるようにすることができます。
最新のLinuxディストリビューションでは、最初のユーザーが自分のパスワードでSudoを実行できるように事前構成されています。これにより、ユーザーによる誤ったシステム構成ミスを防止し、個別のrootパスワードを必要とせずにユーザーが完全に制御できるようになります。
通常のユーザーは、sudoersファイルに含まれている場合にのみ、Sudoを使用してrootアクセスを取得できます(つまり、要求に応じて管理者権限を取得するのに十分信頼されています)。本番環境では、ほとんど誰もsudoerであってはなりません。
su
コマンドを使用して、システムの任意のユーザーに一時的なIDの変更を実行し、そのユーザーの権限で多くのプログラムを実行します。ルートである必要はありません。 su
を実行しているユーザーがルートでない場合、IDを取得するユーザーのパスワードを入力する必要があります。
Sudo
コマンドは、任意のユーザーの権限で1つのコマンドを実行を実行するためのものです。それもルートである必要はありません。コマンドは非常に構成可能であり、ある種の正確なアクセス制御を提供します。独自のパスワードの入力はオプションであり、設定可能です。一部のディストリビューションでは、システムの最初のユーザーがSudo
すべてで実行できます。
上記の回答に追加するには、
su user1
ユーザーのパスワードを入力すると、exitと入力するまで資格情報がuser1に切り替わります。su
はデフォルトでrootと見なされます。
Sudo
他の回答で述べたように、信頼できるユーザーと制限された一連のコマンドに付与できます。さらに、実行されたコマンドをログに記録するようにSudo
を構成できます。これは、特権の誤用を追跡するための良い方法です。
すべての通常のユーザーがSudoを使用できるわけではありません。ユーザーはsudoersファイルにある必要があり、ユーザーが実行できるコマンドまたはコマンドのタイプを制御できます。また、suを使用してrootユーザーに切り替えることができるのは、特定のユーザーのみです。通常、コマンドの限られたセットに対するSudoアクセス許可と、限られた期間における完全なsuアクセス許可のみが与えられます。