lsattrコマンド徹底解説:ファイルの特殊属性を確認する方法

Linuxのファイルシステムには、通常のパーミッション設定に加えて「属性」と呼ばれる特別な制御情報があります。たとえば、削除や変更を防ぐなど、システムのセキュリティや安定性に関わる重要な設定です。これらの属性を確認するために使われるのが lsattr コマンドです。この記事では、lsattr の基本的な使い方から、よく使うオプション、実用的な使用例までをわかりやすく解説します。Linux初心者の方でも理解できる内容になっていますので、ぜひ最後まで読んでください。


lsattrコマンドとは?

lsattr は、Linuxのファイルシステム上のファイルやディレクトリに設定されている「属性(attribute)」を表示するコマンドです。これはext2/ext3/ext4などのファイルシステムで利用可能な機能で、通常のパーミッション(rwx)とは別に、より詳細なファイル操作の制御ができます。

属性には、たとえば「削除不可」「変更不可」「一度しか書き込みできない」などのものがあり、システムの保護や特定用途で活用されます。


基本的な使い方

最も基本的な構文は以下の通りです。

lsattr [オプション] [ファイルやディレクトリ]

何も指定しなければ、現在のディレクトリ内のファイルとディレクトリの属性が表示されます。

lsattr

特定のファイルを指定する場合:

lsattr myfile.txt

例として表示される内容:

----i--------e-- myfile.txt

この場合、i 属性が付いており、「immutable(変更不可)」であることを示しています。


表示される属性の意味

lsattr で表示される文字の意味は以下の通りです(一部抜粋):

属性意味
aappend only(追記のみ可)
c圧縮されて保存
ddump時にバックアップされない
e拡張フォーマットが使用されている
iimmutable(変更・削除不可)
jジャーナリングされている
ssecure deletion(完全削除)
uundelete可能

特に i 属性が付いていると、root でも削除やリネームができません。重要な設定ファイルや保護すべきデータに使われます。


よく使うオプション

-R:再帰的に表示

ディレクトリ内のすべてのファイルとサブディレクトリを含めて表示します。

lsattr -R /etc

-d:ディレクトリ自体の属性を表示

通常、lsattr はディレクトリの中身を表示しますが、-d オプションを使うとディレクトリそのものの属性が表示されます。

lsattr -d /etc

属性の設定・削除にはchattrを使う

lsattr は表示専用のコマンドです。属性を変更したい場合は、chattr コマンドを使います。

たとえば、ファイルを変更不可にするには:

sudo chattr +i myfile.txt

変更不可属性を外すには:

sudo chattr -i myfile.txt

再び lsattr で確認すると、属性が変わっていることがわかります。


実用的な活用例

設定ファイルの誤操作防止

/etc/fstab のような重要な設定ファイルを間違って編集・削除してしまうと、システムが起動しなくなる恐れがあります。そうしたファイルには +i 属性を設定しておくと安心です。

sudo chattr +i /etc/fstab
lsattr /etc/fstab

ログファイルの追記のみ制限

ログファイルには a 属性を設定することで、追記以外の操作を防止できます。これにより、ログの改ざん防止に役立ちます。

sudo chattr +a /var/log/syslog

※削除や内容の書き換えはできませんが、追記は可能です。


注意点とトラブルシューティング

  • lsattr はext系(ext2/ext3/ext4)でのみ有効で、XFSやBtrfsでは無効です。
  • i 属性を付けたファイルは、root でも削除・名前変更できません。設定後は慎重に扱ってください。
  • Docker環境や一部の仮想マシンではサポートされていない場合もあります。

まとめ

lsattr コマンドは、Linuxファイルシステムの深い制御を行う上で非常に便利なツールです。特に、ファイルの「変更不可」や「追記のみ」などの特殊属性は、システムの保護やログ管理に役立ちます。lsattr で定期的に属性を確認し、必要に応じて chattr を併用することで、安全で堅牢な環境を構築しましょう。

タイトルとURLをコピーしました