s-bit, sticky-bit について
今更ながら、基本のおさらい
s-bit (sビット)
setuid, setgid のことで、そのファイルのオーナーまたはグループの権限で実行する
ただし、各オーナーやグループに実行権が付いている、かつ、実行するユーザが実行できるパーミッション(オーナーかグループかその他か)になっている必要がある。
例えば、setuid が付いているがパーミッションが 744 、オーナーが root になっている場合、root 以外の他のユーザは実行できない。
sticky-bit (スティッキービット)
典型的な例は /tmp のディレクトリ
このsticky-bit が付いたディレクトリ配下に作ったファイルは作ったオーナーしか移動や削除などディレクトリのlinkを操作する行為は不可能になる
chmod 等で指定する4桁目の8進数値
setuid | 4000 (1 << 2) |
---|---|
setgid | 2000 (1 << 1) |
sticky-bit | 1000 (1 << 0) |
ls -l で見た s, S, t, T
大文字になっていると、そこには実行権を表す x が付いていないことを示す
ls -l
-rwxr-Sr-x 2 teramako teramako 4.0K 2013-04-22 19:15 a -rwS------ 2 teramako teramako 4.0K 2013-04-22 19:15 b
のような場合、ファイル a はグループに実行権が付いていない。8進数で 2745 の状態。
ファイル b は オーナーに実行権が付いていなくて、8進数で 4600 の状態。