2007年9月5日水曜日
lsattr と chattr

別に新しい話題でもないけど、知らなかったのでちょっとメモ。

Linuxのext2、ext3のファイルシステムにおいて、パーミッション以外のファイル属性を操作するもの。
lsattrが表示でchattrが変更のコマンド。

例えばlsなら、

# ls -la test
-rw-r--r-- 1 root root 0 8月 29 00:26 test

となる。rootであれば書き込み可能だし、その他のユーザであれば読み込みだけ可能ということになる。
そこで、lsattrを実行する。
# lsattr test
------------- test

現状、何も設定されていないので、chattrで変更不可能を表すi(immutable)を設定してみる。
# chattr +i test

念の為に確認。
# lsattr test
----i-------- test


で、削除(rm)してみる。
# rm test
rm: remove write-protected 通常の空ファイル `test'? y
rm: cannot remove `test': 許可されていない操作です


ほほぅ…

でもってiフラグを消す。
# chattr -i test

念の為に確認。
# lsattr test
------------- test

で、削除。
# rm test
rm: remove 通常の空ファイル `test'? y
# ls test
ls: test: そのようなファイルやディレクトリはありません

はい、無事消えました。


ところで、lsattrのオプションに「-a」がある。これはJMから引用すると、
`.' ではじまるファイルも含め、全てのファイルおよびディレクトリを表示する。

ということで、lsコマンドと同じ。
じゃ、「-l」は? と思ったけど、記述は無い。
manページ開いてもない。ってことで、実行してみました。
# touch test
# lsattr -l test
test               ---


# chattr +id test
# lsattr -l test
test               Immutable, No_Dump

ははぁ、なるほど。

…と思ってたら、usageにはしっかりlオプションの記載があった。
# lsattr -r
lsattr: オプションが違います -- r
Usage: lsattr [-RVadlv] [files...]

でも、manにはないなぁ。

いやぁ、まぁ、誰もこんな情報は欲してないと思うけど。

# コマンドなど、一部半角スペースを全角スペースに置き換え。
# スタイルシートを修正しないといかんか?



0 コメント | コメントを書く
Template Design: © 2007 Envy Inc.