2012年1月5日木曜日

lsattrとchattrコマンド

明けましておめでとうございます。本年もよろしくお願い致しMuscle!
俺@今日から仕事始めです。

Linuxで削除できないファイルがある、または削除できないファイルを作るなどといった場合に使えるコマンドの紹介です。
これはext2またはext3ファイルシステムで使える、固有のフラグを操作するコマンドです。

chattrコマンドで操作できます。

$ chattr +i hoge.txt
これでhoge.txtは、たとえrootユーザになって削除しようとしても

# rm -rf hoge.txt
rm cannot remove `hoge.txt': Operation not permitted
となります。

このi属性を削除するには

$ chattr -i hoge.txt
でOKです。
引数に「+」で属性追加、「-」で属性削除になります。
操作できる属性は

・a...ファイルの追書き込みのみ許可(append)
・c...ファイルを圧縮しディスクに保存する(compress)
・d...dumpコマンドによるバックアップ候補にしない(dump)
・i...ファイル変更を許可しない。rmやmvができない(immutable)
・A...ファイルがアクセスされた時のatimeを更新しない。Disk I/Oが少し早くなるかも?
・D...ディレクトリに変更があった場合、すぐディスクに保存する。
・S...ファイルに変更があった場合、すぐディスクに保存する。
です。他にもありますが、、
実際使えるとすれば「i」と「A」かな。

任意のファイルの属性を確認するには

$ lsattr hoge.txt
で、上記のフラグのいずかが出ればその属性が立っているということ。
何もなければ(普通ないが)
------------- hoge.txt
となります。


少々マニアックなコマンドですが、プログラムで「何が何でも消してはアカンファイルがある!」という場合など、使えるかもしれません。
また、不正プログラムなどにはこの属性がしてされており、もし管理者が不正ファイルを見つけて消そうとしても簡単には消えないようにされている場合もあります。


以上でぇぇえぇぇす。

0 件のコメント: