SUID とは


勉強前イメージ

特殊なパーミッションだけどなんだっけ?
最近そういうの調べてる

調査

SUID とは

Set User ID の略で、実行ファイルに設定されます。
通常の実行ファイルは実行者の権限で実行されますが
SUIDが設定されていたら所有者の権限で動作します。

代表的なファイル

centosで確認しています。
/usr/bin/passwd を見ると所有者の実行権限に s が書かれています。
これがSUIDを表しています。

[root@localhost ~]# ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27856  4月  1  2020 /usr/bin/passwd

このSUIDが意味するのは、
/usr/bin/passwdについて誰がこのコマンドを実行してもroot権限で実行されることになります。

SUIDを設定してみる

  • ファイルを作ってみる

file_suid を作ってみました。

[root@localhost ~]# touch file_suid
[root@localhost ~]# ll
-rw-r--r-- 1 root root    0  3月 19 09:27 file_suid
  • SUIDの権限を指定

元々は644なのですが、所有者に実行権限がないので
755にしてSUIDを設定します。
SUIDは4000を足して付与します。
下記のように所有者に s が付きました。

[root@localhost ~]# chmod 4755 file_suid 
[root@localhost ~]# ll
-rwsr-xr-x 1 root root    0  3月 19 09:27 file_suid

勉強後イメージ

そういえばそんなんあったなぁって。
これで特殊権限は終わりかな?

参考