ファイルが変更、削除、または名前変更されないようにする場合は、ファイルに不変フラグを設定する必要があります。ファイルやディレクトリに設定できます。不変フラグが追加されると、ファイル/フォルダーを変更または削除できなくなります。不変フラグを追加し、ファイルに変更を加えたい場合は、不変フラグを削除する必要があります。これは拡張ファイルシステム属性です。
不変フラグを設定するには、次の手順を参照してください。不変フラグを設定するには、rootでログインする必要があります。
- 最初に、以下のコマンドを使用してtest.txtという名前のファイルを作成します。
# touch test.txt
- lsattrコマンドを使用して、拡張属性を確認します。デフォルトでは、「e」のみが存在します。
# lsattr test.txt
- test.txtにコンテンツを追加しますが、まだ変更を加えていないため、正常に機能するはずです。
# echo This is a test of immutable flage >> test.txt
# cat test.txt - chattrコマンドを使用して+iフラグを設定しましょう。ここでは、不変を意味します。
# sudo chattr +i test.txt
- 次に、以下のコマンドを使用して、ファイルtest.txtの不変を検証します
# lsattr test.txt
出力 :
----i---------e---- test.txt
- 上記のように、test.txtは不変になりました。同じファイルを変更または削除しようとします。
# echo test-modification >> test.txt
-bash: test.txt: Permission denied# rm -f test.txt
rm: cannot remove ‘test.txt’: Operation not permitted# mv test.txt test2.txt
mv: cannot move ‘test.txt’ to ‘test2.txt’: Operation not permitted上記のエラーのように、ファイルに不変フラグを設定したため、ファイルを変更または削除できないことがわかります。いずれかのフォルダに不変を設定すると、同じフォルダ内のファイル/フォルダ全体に不変フラグが設定されることに注意してください。
- 同じファイルに変更を加える場合は、不変ファイルを削除する必要があります。次のコマンドは、ファイルから不変フラグを削除します。
# chattr -i test.txt
- 不変フラグが削除されていないことを確認します。
# lsattr test.txt
出力:
-------------e-- test.txt
これで、問題なくファイルを変更または削除できます。