前回は特殊なパーミッション
sticky bit, SETGID, SETUID
を学んだね!
今回はそれらを
管理する方法を教えるよ!
パーミッションには変わりないので
chmod で変更するんだ
シンボリック形式は
「対象」「どうするか」「権限」の
3種類の文字の組み合わせで
権限を指定するんだよね
そのうち「権限」の部分で
特殊なパーミッションを指定するんだ
以下のような感じだよ
| 権限 | 意味 |
|---|---|
s |
SETGID, |
t |
sticky bit |
あれ?
SETGID と SETUID が
同じ文字を使っているね?
SETGID と SETUID の
区別ができないよ?
これは「対象」と組み合わせて区別するんだ
「所有グループ」と組み合わせれば SETGID
「所有ユーザ」と組み合わせれば SETUID
となるよ
| 指定 | 意味 |
|---|---|
u+s |
SETUID を与える |
g-s |
SETGID を除く |
なるほど!
「対象」で
区別するんだね!
通常は3桁の八進数で表現するけど
特殊なパーミッションは
「4桁目」で表現するんだ
| 4桁目の数値 | 意味 |
|---|---|
4 |
SUID |
2 |
SGID |
1 |
sticky bit |
3桁が当たり前だと思っていたけど
4桁目が隠されていたんだ!
いくつか例を挙げるね
| 指定 | 意味 |
|---|---|
1777 |
sticky bit を設定し、 |
4755 |
SETUID を設定し、 |
特殊なパーミッションは
特殊な用途で使われるんだ
本当に必要な場合しか
使ってはいけないよ!
そ、そんなに
注意しないと
いけないの?
特に SETUID はそうだよ
実行ファイルの所有ユーザがスーパーユーザで
そこに SETUID が設定されていたら
誰が実行してもスーパーユーザ権限で
実行されるんだ!
うわぁ…
言葉だけでも
重大さが伝わるよ…
特に SETUID を設定する場合には
本当にこの権限が必要か
よく考えて設定しよう!
今回は特殊なパーミッションの
設定方法を学んだよ!
あまり使うことがないと
いいなぁと思っているよ…
実際使う機会は少ないから安心してね
でもいざという時に対応ができないから
知っておくことは大事だよ!