Lから始まるLinux

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