Unixコマンド/chflags

chflags

機能

Unixには、chmodでファイルにアクセス権を設定しアクセス制御を行う機能がありますが、
BSD系のOSには"ファイルフラグ"というものを設定して更に細かくアクセス制御を行う機能があります。

ファイルフラグは4.4 BSDに実装され、それ以降のBSD系OSに入っています。ですから、当然、Mac OS Xにも入っている訳ですね。
 そのファイルフラグを設定するためのコマンドが、このページで紹介するchflags

形式

chflags [フラグ] [ファイル名]

オプション

フラグの設定フラグの解除フラグの内容必要な権限
archnoarcharchivedroot
opaquenoopaqueopaque所有者またはroot
nodumpnonodumpnodump所有者またはroot
sappndnosappndsystemappend-only root
schgnoschgsystem immutableroot
sunlnknosunlnksystem undeletableroot
uappndnouappnduser append-only所有者またはroot
uchgnouchguser immutable所有者またはroot
uunlnknouunlnkuser undeletable所有者またはroot

コマンド例

■通常だと/var/emptyは消すことができない。

# rm -rf /var/empty
rm: /var/empty: Operation not permitted

■それでも消したい場合

# /bin/ls -dlo /var/empty
dr-xr-xr-x  2 root  wheel  schg 512  1 16  2008 /var/empty

# chflags noschg /var/empty
# rm -r /var/empty