今回は特殊なパーミッションを話そう!
一般ユーザでも設定できるけど
主にスーパユーザが使うものだよ
えっ?
そんなものがあるの?
最初は
「スティッキービット
(sticky bit)」だよ
このパーミッションが
設定されている
ディレクトリの下では
ファイルの所有者しか
削除や移動ができないんだ
たくさんのユーザが使う場所に
設定されていそうだね
そのとおり!
これは
/tmp や
/var/tmp に
設定されているよ
次は
「SETGID(set group id)」だよ
このパーミッションが
設定されている実行ファイルは
どのグループで実行しても
ファイルの所有グループで
実行した扱いになるんだ
うーん?
SETGID はあまり使われていないよ
実際は次の SETUID が大事なんだ
最後に
「SETUID(set user id)」だよ
このパーミッションが
設定されている実行ファイルは
どのユーザで実行しても
ファイルの所有ユーザが
実行した扱いになるんだ
SETUID は大事と
言っていたよね?
SETUID が設定されている
代表は
passwd だよ
ユーザパスワードが保管されている
設定ファイルは /etc/shadow だけど
スーパユーザしか読み書きできないんだ
それだとスーパユーザ以外
パスワード変更できないよ!
そこで
passwd の所有ユーザは
スーパーユーザになっていて
SETUID が設定されているんだ
なるほど!
誰が
passwd を実行しても
スーパーユーザが実行したことになるので
パスワード管理ファイル /etc/shadow に
アクセスできるということなんだね!
それでいて
/etc/shadow のパーミッションは
スーパーユーザにしか読み書きできないので
一般ユーザが /etc/shadow を開いて
内容を知ったり書き換えたりということが
できないようになっているよ
今回は特殊なパーミッション
sticky bit, SETGID, SETUID を学んだよ!
ごく一部の特殊な用途のためにあるんだ!
これらを設定することもできるよ
次回はその設定方法を説明するね!