ファイルパーミッション - Wikipedia
ÁêÈANZX É¢Ä
種類 | ユーザー(u) | グループ(g) | その他(o) |
---|---|---|---|
d | rwx | rwx | rwx |
読み書き実行のほかにもうひとつ属性がある
- r 読める
- w 書ける
- x 実行できる
- s setuid,setgid,sticky
setuid
x | 実行属性なし | 実行属性あり |
---|---|---|
setuidなし | - | x |
setuidあり | S | s |
実行ファイルにsetuidされていると、そのユーザーで実行したことになる
ディレクトリにsetuidされていると、そのユーザーがファイルを作ったことになる
setgid
ユーザーでなくグループである以外はsetuidと同じ。
sticky
x | 実行属性なし | 実行属性あり |
---|---|---|
stickyなし | - | x |
stickyあり | T | t |
実行ファイルにstickyビットがついてても、Linuxでは無視する*1
ディレクトリにstickyビットがついてると、そこに作成されたファイルは ディレクトリの所有者かファイルの所有者以外には削除できなくなる。
chmod
chmod g+xs hoge chmod o+t hoge chmod -s hoge
setgidやsetuidは s 、stickyビットは t で指定する。(chmod -sとしてもstickyビットは剥がれない)
chmodコマンドでパーミッションを8進数で指定するとき、setgidやsetuidは立てることはできるが下ろすことはできない。
--------- 最初の状態 | |
chmod 2000 hoge | -----S--- setgidビットが立つ |
chmod 1000 hoge | -----S--T stickyビットが立つ。setgidビットが下りない |
chmod 0000 hoge | -----S--- setgidビットが下りない |