前回は特殊なパーミッション
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 はそうだよ
実行ファイルの所有ユーザが
root
で
SETUID が設定されていたら
誰が実行しても root
権限で
実行されるんだ!
うわぁ…
言葉だけでも
重大さが伝わるよ…
特に SETUID を設定する場合には
本当にこの権限が必要か
よく考えて設定しよう!
今回は特殊なパーミッションの
設定方法を学んだよ!
あまり使うことがないと
いいなぁと思っているよ…
実際使う機会は少ないから安心してね
でもいざという時に対応ができないから
知っておくことは大事だよ!