lsattrコマンド(エルエスアットコマンド)とは | 意味や読み方など丁寧でわかりやすい用語解説
lsattrコマンド(エルエスアットコマンド)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
エルエスアットコマンド (エルエスケートコマンド)
英語表記
lsattr (エルエスアットアール)
用語解説
lsattrコマンドは、Linuxシステムにおいてファイルやディレクトリに設定された拡張属性(extended attributes)を表示するためのコマンドである。標準的なファイル情報を表示するlsコマンドとは異なり、lsattrはファイルシステムレベルで設定される特殊な属性を確認するために使用される。これらの拡張属性は、通常の所有者やグループ、パーミッション(読み取り、書き込み、実行権限)といった基本的なアクセス制御とは別に、ファイルの振る舞いをより細かく制御する機能を提供する。拡張属性を設定・変更するにはchattrコマンドが用いられ、lsattrコマンドはchattrコマンドで設定された内容を確認する役割を担う。つまり、chattrとlsattrは対になるコマンドとして機能する。この仕組みは、システムのセキュリティを強化したり、重要なファイルを誤操作から保護したりする上で非常に重要な役割を果たす。
lsattrコマンドの詳細を理解するには、まず拡張属性そのものについて知る必要がある。拡張属性とは、Linuxのext2、ext3、ext4、XFSといった特定のファイルシステムがサポートする機能であり、ファイルに対して特殊な性質を付与するものである。例えば、rootユーザーであってもファイルの変更や削除を一切許可しない「不変(immutable)」属性や、ファイルの削除や上書きは禁止するが末尾への追記のみを許可する「追記専用(append only)」属性などがある。これらの属性は、通常のパーミッション設定では実現できない高度なファイル保護を可能にする。lsattrコマンドは、これらの属性がどのファイルやディレクトリに設定されているかを一覧で表示することで、管理者がシステムの現在の状態を正確に把握する手助けをする。コマンドの基本的な書式は lsattr [オプション] [ファイル名/ディレクトリ名] となる。引数を何も指定せずに実行すると、カレントディレクトリ内のファイルやディレクトリの拡張属性が表示される。
lsattrコマンドには、表示形式を制御するためのいくつかのオプションが存在する。-a オプションは、. や .. で始まる隠しファイルを含め、すべてのファイルとディレクトリの属性を表示する。これはlsコマンドの -a オプションと同様の機能である。-d オプションは、引数にディレクトリを指定した際に、そのディレクトリの中身ではなく、ディレクトリ自体に設定された属性を表示する。通常、ディレクトリ名を指定するとその配下にあるファイルやサブディレクトリの属性が表示されるため、ディレクトリそのものの状態を確認したい場合にこのオプションは不可欠である。-R オプションは、指定したディレクトリとその配下のすべてのサブディレクトリの内容を再帰的に表示する。これにより、特定のディレクトリツリー全体にわたる属性設定を一度に確認することが可能となる。
lsattrコマンドの出力結果は、属性を示すアルファベットの文字列とファイル名から構成される。左側に表示される文字列の各文字が、ファイルに設定されている属性を表している。最も代表的で重要な属性として i (immutable) 属性が挙げられる。この属性が設定されたファイルは、内容の変更、削除、名前の変更、リンクの作成といったあらゆる操作が、たとえrootユーザーであっても禁止される。システムの根幹に関わる重要な設定ファイルなどを保護する際に極めて有効である。次に重要なのが a (append only) 属性である。この属性が設定されると、ファイルへのデータ追記のみが許可され、既存の内容の上書きや削除はできなくなる。これは、ログファイルのように時系列で記録を追加していくファイルの完全性を保つために利用される。他にも、ファイルがファイルシステムによって自動的に圧縮されることを示す c (compressed) 属性、dumpコマンドによるバックアップの対象から除外することを示す d (no dump) 属性、ext4ファイルシステムで効率的なディスク領域割り当て方式であるエクステントが使用されていることを示す e (extent format) 属性などがある。システムエンジニアは、これらの属性が表示された際にその意味を正しく理解し、システムの挙動を把握する必要がある。lsattrは、システムのセキュリティ監査やトラブルシューティングの際に、パーミッション設定だけでは見えてこない問題の原因を特定する上で強力なツールとなる。拡張属性は非常に強力な機能であるため、意図せず設定したままだと、管理者自身がファイルの編集ができなくなる事態も起こりうる。そのため、chattrで属性を設定した後は、必ずlsattrで意図通りに設定されているかを確認し、適切に管理することが求められる。