パーミッションrwsやrwtの「s」や「t」は何?
https://lpic-master.com/suid-sgid-stickybit
パーミッションrwsの「s」はSUID、SGID
パーミッション「rws」はpasswdコマンド(パスワード変更コマンド)を ls で調べると見ることができます。
$ which passwd #passwdコマンドの場所(path)を調べる
/usr/bin/passwd
$ ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root /usr/bin/passwd
passwdコマンドは所有者がrootで、所有者の実行権が「s」になっています。
これは他のユーザーが実行した場合に、ファイル所有者の権限で実行されるという意味です。
つまり一般ユーザーがpasswdコマンドを実行すると、root権限で実行されます。
だからこそ、実行時に /etc/passwd に書き込みができるという仕組みです。
この仕組みを SUID といいます。
SUIDの設定は以下のようにします。
chmod u+s file
もしくは
chmod 4755 file # 3桁のパーミッションに 4000 を加える
ls -l file
-rwsr-xr-x. file
SUIDと同じように実行時にグループの権限が適用されるようにすることもできます。
SGIDと言います。
chmod g+s file
もしくは
chmod 2755 file # 3桁のパーミッションに 2000 を加える
ls -l file
-rwxr-sr-x. file
SGIDをディレクトリに設定しておくと、その配下で作成されたファイルはディレクトリと同じグループになるので、複数ユーザーで共有するディレクトリにSGIDを設定しておくと便利に使えます。

コメント