Aerial view of a man using computer laptop on wooden table
Linuxのファイルシステムには、通常のパーミッション設定に加えて「属性」と呼ばれる特別な制御情報があります。たとえば、削除や変更を防ぐなど、システムのセキュリティや安定性に関わる重要な設定です。これらの属性を確認するために使われるのが lsattr
コマンドです。この記事では、lsattr
の基本的な使い方から、よく使うオプション、実用的な使用例までをわかりやすく解説します。Linux初心者の方でも理解できる内容になっていますので、ぜひ最後まで読んでください。
lsattr
は、Linuxのファイルシステム上のファイルやディレクトリに設定されている「属性(attribute)」を表示するコマンドです。これはext2/ext3/ext4などのファイルシステムで利用可能な機能で、通常のパーミッション(rwx)とは別に、より詳細なファイル操作の制御ができます。
属性には、たとえば「削除不可」「変更不可」「一度しか書き込みできない」などのものがあり、システムの保護や特定用途で活用されます。
最も基本的な構文は以下の通りです。
lsattr [オプション] [ファイルやディレクトリ]
何も指定しなければ、現在のディレクトリ内のファイルとディレクトリの属性が表示されます。
lsattr
特定のファイルを指定する場合:
lsattr myfile.txt
例として表示される内容:
----i--------e-- myfile.txt
この場合、i
属性が付いており、「immutable(変更不可)」であることを示しています。
lsattr
で表示される文字の意味は以下の通りです(一部抜粋):
属性 | 意味 |
---|---|
a | append only(追記のみ可) |
c | 圧縮されて保存 |
d | dump時にバックアップされない |
e | 拡張フォーマットが使用されている |
i | immutable(変更・削除不可) |
j | ジャーナリングされている |
s | secure deletion(完全削除) |
u | undelete可能 |
特に i
属性が付いていると、root
でも削除やリネームができません。重要な設定ファイルや保護すべきデータに使われます。
ディレクトリ内のすべてのファイルとサブディレクトリを含めて表示します。
lsattr -R /etc
通常、lsattr
はディレクトリの中身を表示しますが、-d
オプションを使うとディレクトリそのものの属性が表示されます。
lsattr -d /etc
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
でも削除・名前変更できません。設定後は慎重に扱ってください。lsattr
コマンドは、Linuxファイルシステムの深い制御を行う上で非常に便利なツールです。特に、ファイルの「変更不可」や「追記のみ」などの特殊属性は、システムの保護やログ管理に役立ちます。lsattr
で定期的に属性を確認し、必要に応じて chattr
を併用することで、安全で堅牢な環境を構築しましょう。