Linuxで書き込み保護されたファイルを作成するチュートリアル
Linuxの重要なファイルを書き込み保護したい場合は、削除されたり、以前のバージョンや他のものに改ざんされたりすることはできません。あるいは、他の場合、ソフトウェアによって自動的に変更されるプロファイルを回避したい場合があります。chownコマンドとchmodコマンドを使用してファイルの帰属関係または権限ビットを変更することは、root権限のある操作を回避できないため、このような状況を処理する解決策ですが、これは完璧ではありません。この時chattrは役に立ちました。
chattrは、ファイルのフラグビットを設定またはキャンセルできるLinuxコマンドで、標準のファイル権限(読み取り、書き込み、実行)とは分離されています。これに関連するもう一つのコマンドはlsattrで、ファイルのどのフラグビットが設定されているかを表示できます。当初はEXTファイルシステム(EXT 2/3/4)のみがchattrとlsattrが管理するフラグビットをサポートしていたが、XFS、Btrfs、ReiserFSなど、他のオリジナルのLinuxファイルシステムの多くがサポートしている。
このチュートリアルでは、chattrを使用してLinuxのファイルを変更できないようにします。
chattrコマンドとlsattrコマンドはe 2 fsprogsパッケージの一部であり、すべての現代Linuxリリース版にプリインストールされています。
$chattr[-RVf][オペレータ][フラグビット]ファイル...
ここで、オペレータは「+」(選択したフラグビットをフラグビットリストに追加)、「-」(選択したフラグビットをフラグビットリストから削除)、「=」(選択したフラグビットを強制的に使用)であってもよい。
a:追加モードでのみ開くことができます。
A:atime(ファイルアクセス時間)は更新できません。
c:ディスクに書き込まれると自動的に圧縮されます。i:変更不可。
s:自動ゼロ化により安全に削除します。(LCTT訳注:一般的にファイルが削除されても内容は変更されず、フラグビットを変更するとファイルが削除されても元の内容が「0」に置き換えられます)1つのファイルを変更できないように、このファイルに「変更不可」フラグビットを追加するには、次の方法が必要です。たとえば、/etc/passwdファイルを書き込み保護します。
コードのコピー
$ sudo chattr +i /etc/passwdコードのコピー
$ lsattr /etc/passwd
ファイルが変更不可に設定されると、どのユーザーもファイルを変更できません。rootユーザーでも、このファイルを変更、削除、上書き、移動、または名前変更することはできません。このファイルを再度変更するには、まず「変更不可」フラグビットをキャンセルする必要があります。コードのコピー
$ sudo chattr -i /etc/passwd
「追加のみ可能」フラグビット