SUIDとSUDOの違い

とある研修で、SUIDとSUDOの違いを腹落ちさせました。

いや、両方SUって単語が入ってて、色々謎だったんですよね・・・。

※とかいって間違ってたらごめんなさい。

 

 

・簡単な違い

SUID:だれでも特定の権限であるコマンドを実行できるように権限付与した状態。

SUDO:特定メンバに管理者権限で指定したコマンドを実行できるように権限付与した状態。

 

・雑な理解

SUIDは、ls -lで確認した際、xとなる部分がsになっていることで判別できる。

もともととある権限のコマンドを実行しようとすると、その実行者の権限でコマンドが動く。

仮にそのコマンドが管理者権限を持つファイルを操作する類の場合、利用者によっては(ほとんど)権限の関係でコマンドが実行できないことになってしまう。

これでは不便なので、このSUIDを付与すると、そのコマンドを実行した場合、実行者の権限ではなく所有者の権限でもってコマンドが動くようになる。

 

例)passwdコマンド

こいつはshadowファイルを書き換えたりするが、shadowファイル自体は管理者でなければ開くことができない。

しかし、それでは一般ユーザのパスワード変更が自身ではできないことになる。

そこで、このコマンドにはSUIDが付与されており、一般ユーザが実行しても、所有者であるrootが実行したことになり、shadowファイルを開くことができる。

f:id:syachineko:20210902232616p:plain

 

SUDOはsudoersで管理され、管理者権限が必要となる特定のコマンド実行を特定ユーザに許可することができる。

さらに、許可されたコマンドを実行しようとする際には、そのユーザは自身のパスワードを入力することでコマンド実行が可能となる。

なお、権限についてはvisudoコマンドで編集し、閉じる際にはチェックが入る。

f:id:syachineko:20210902233519p:plain

 

ちなみに、SUIDのグループ版がSGIDとなる。

ナニモワカラナイ状態だったから、腹落ちしてよかった。

 

以上。