書式
chattr [ -RV ] [ -v version ] [ mode ] files...説明
chattr は Linux 第 2 拡張ファイルシステム (ext2fs) 上にある ファイルの属性 (attribute) を変更する。mode の記法フォーマットは +-=[ASacDdIijsTtu] である。
+ オペレータを使用すると、選択した属性がファイルに付加される。 - オペレータを使用すると解除される。 = オペレータを使用すると、ファイルは指定した属性だけを持つことになる。
「acdijsuADST」は指定できる属性である。 (a) 追加のみ許可 (append only)、(c) 圧縮 (compressed)、 (d) ダンプしない (no dump)、(i) 変更不可 (immutable)、 (j) データのジャーナリング (data journalling)、 (s) 安全な削除 (secure deletion)、(t) 末尾マージをしない (no tail-merging)、 (u) 復活可能 (undeletable)、 (A) atime を更新しない、 (D) ディレクトリの同期更新 (synchronous directory updates)、 (S) 同期更新 (synchronous updates)、 (T) ディレクトリ階層のトップ。
オプション
- -R
- 再帰的にディレクトリやその中身の属性を変更する。 ディレクトリを順番に訪れている途中でシンボリックリンクに出会った場合は、 これを無視する。
- -V
- 属性の変更を詳細に表示する。
- -v version
- ファイルシステムのバージョン/世代を設定する。
属性
`A' 属性が設定されているファイルは、 アクセスされても atime レコードが変更されない。 これはラップトップシステムのディスク I/O をある程度軽減する。`a' 属性が設定されているファイルは、 書き込みの際に追加モードでしかオープンできない。 スーパーユーザーまたは CAP_LINUX_IMMUTABLE ケーパビリティ (capability) を持つプロセスだけが、 この属性を設定・解除できる。
`c' 属性が設定されているファイルは、 ディスク上に置かれるときカーネルによって自動的に圧縮される。 このファイルを読み出すと、伸長されたデータが返ってくる。 このファイルに書き込むと、ディスク上に保存する前にデータが圧縮される。 注意: このドキュメントの最後にある 「バグと制限」のセクションを読んで確かめてほしい。
`D' 属性が設定されているディレクトリは、 変更されると同時にディスクにもその内容が書き込まれる。 これは `dirsync' マウントオプションを、 それらのファイルだけに適用するのと同じことである。
`d' 属性が設定されているファイルは、 dump(8) プログラムを起動した際にバックアップされない。
`E' 属性は実験的な圧縮パッチが用いるもので、 圧縮ファイルに圧縮エラーがあることを示す。 この属性は chattr(1) によって設定したり解除したりすることはできないが、 lsattr(1) を用いて表示させることはできる。
`I' 属性は htree コードによって用いられ、 ディレクトリがハッシュツリーを使って索引を付けられることを示す。 この属性は chattr(1) によって設定したり解除したりすることはできないが、 lsattr(1) を用いて表示させることはできる。
`i' 属性が設定されているファイルは、変更することができない。 すなわち、削除、名前の変更、このファイルを指すリンクの作成、 このファイルに対するデータの書き込みが禁止される。 スーパーユーザーまたは CAP_LINUX_IMMUTABLE ケーパビリティを持つプロセスだけが、 この属性を設定・解除できる。
`j' 属性が設定されているファイルは、 ファイルシステムが "data=ordered" または "data=writeback" オプションで マウントされている場合、 ファイルそのものに書き出される前に、 ext3 のジャーナルにデータが書き出される。 ファイルシステムが "data=journal" オプションでマウントされている場合、 全てのファイルデータは既にジャーナルに記録されているので、 この属性は何も影響しない。 スーパーユーザーまたは CAP_SYS_RESOURCE ケーパビリティを持つプロセスだけが、 この属性を設定・解除できる。
`s' 属性が設定されているファイルが削除されると、 割り当てられていたブロックの中身が 0 にされ、ディスクに書き戻される。 注意: このドキュメントの最後にある 「バグと制限」のセクションを読んで確かめてほしい。
`S' 属性が設定されているファイルが変更されると、 変更は同期的にディスクに書き込まれる (すなわち変更が直ちにディスク上に反映される)。 これは mount オプションの `sync' を それらのファイルだけに適用するのと同じことである。
`T' 属性が設定されているディレクトリは、 (Linux 2.5.46 以降のシステムで使われる) Orlov ブロックアロケータのための ディレクトリ階層のトップとして扱われる。
`t' 属性が設定されているファイルは、 そのファイルが他のファイルとマージされたときに 部分的ブロックのフラグメントを末尾に作らない (末尾マージ (tail-merging) をサポートしているファイルシステムの場合)。 これは LILO のような、ファイルシステムを直接読みにいき、 かつ末尾マージされたファイルのことを理解しないような アプリケーションに対して必要となる。 注: この man ページを書いている時点で、ext2 と ext3 ファイルシステムは (まだ非常に実験的なパッチ以外では) 末尾マージをサポートしていない。
`u' 属性が設定されているファイルを削除すると、 その内容は保護される。 これにより、ユーザがファイルを復活させることが可能になる。 注意: このドキュメントの最後にある 「バグと制限」のセクションを読んで確かめてほしい。
`X' 属性は実験的な圧縮パッチによって用いられ、 圧縮ファイルの内容が圧縮状態のまま直接アクセス可能であることを示す。 この属性は現在のところ chattr(1) によって設定したり解除したりすることはできないが、 lsattr(1) を用いて表示させることはできる。
`Z' 属性は実験的な圧縮パッチによって用いられ、 圧縮ファイルが汚染されている (dirty) ことを示す。 この属性は chattr(1) によって設定したり解除したりすることはできないが、 lsattr(1) を用いて表示させることはできる。
著者
chattr は、Remy Card <[email protected]> によって作成された。 現在は Theodore Ts'o <[email protected]> によってメンテナンスされている。バグと制限
`c', 's', `u' 属性への対応は、現在主流になっている Linux カーネルで 実装されている ext2 と ext3 ファイルシステムに含まれていない。 これらの属性は将来の ext2 と ext3 に実装されるかもしれない。`j' オプションは、ext3 でマウントされた ファイルシステムについてのみ有効である。
`D' オプションは Linux カーネル 2.5.19 以降でのみ利用できる。