これらのコマンドの主な違いは、機能へのアクセスを制限する方法にあります。
su
(これは「代替ユーザー」または「ユーザー切り替え」を意味します) -まさにそれを行い、ターゲットユーザーの権限で別のシェルインスタンスを起動します。それを行う権利があることを確認するために、ターゲットユーザーのパスワードを要求します。そのため、rootになるには、rootパスワードを知る必要があります。rootとしてコマンドを実行する必要があるマシン上に複数のユーザーがいる場合、すべてのユーザーがrootパスワードを知っている必要があります-同じパスワードになることに注意してください。ユーザーの1人から管理者権限を取り消す必要がある場合は、rootパスワードを変更し、アクセスを維持する必要のある人だけに伝える必要があります。
sudo
(うーん...ニーモニックとは何ですか?スーパーユーザーDO?)はまったく異なります。呼び出されたときに特定のアクション(などルート、などのコマンドを実行)する権限を持っているユーザーを一覧表示し、設定ファイル(の/ etc / sudoersファイル)を使用して、それがために要求することを開始したユーザーのパスワード -で人を確保するために、ターミナルは、実際にリストされて/etc/sudoers
いるのと同じ「ジョー」です。個人の管理者権限を取り消すには、構成ファイルを編集するだけです(または、その構成にリストされているグループからユーザーを削除します)。これにより、特権の管理がよりクリーンになります。
この結果、多くのDebianベースのシステムでは、root
ユーザーはパスワードを設定していません。つまり、rootとして直接ログインすることはできません。
また、/etc/sudoers
いくつかの追加オプションを指定できます。つまり、ユーザーXはプログラムYなどしか実行できません。
頻繁に使用されるsudo su
次のように組み合わせは動作します:最初のsudo
をお願いしますあなたのパスワード、そして、あなたがそうすることを許可している場合、(次のコマンドを起動su
スーパーユーザーとして)。su
によって呼び出されるためroot
、ターゲットユーザーのパスワードを入力する必要はありません。そのsudo su
ため、/etc/sudoers
ファイルによるスーパーユーザーアクセスが許可されている場合、別のユーザー(ルートを含む)としてシェルを開くことができます。
su user
信頼できないシェルからのログインには使用しないでくださいsu - user
。参照してくださいunix.stackexchange.com/q/7013/8250