ディレクトリ・ファイルを削除できないように権限を変更する
■削除できないファイルを作成
まずは、削除できないファイルにするため、権限を変更してみましょう。
# touch foo.txt
# chattr +i foo.txt
# rm foo.txt rm: remove write-protected 通常の空ファイル `foo.txt'? y rm: cannot remove `foo.txt': 許可されていない操作です
# echo "xyz" >> foo.txt -bash: foo.txt: 許可がありません
chattrコマンドに「+i」オプションをつけることで、削除・変更ができないファイルとなります。
ちなみにファイル名の変更もできなくなります。
rootユーザでさえ削除・変更が行えなくなります。なお、この権現を削除したい場合は「-i」オプションをつけて実行すれば解除できます。
# chattr -i foo.txt # rm foo.txt rm: remove write-protected 通常の空ファイル `foo.txt'? y (削除される)
■追記モードでしか開けないファイルを作成
ファイルを「追記モード」でしか開くことができず、また削除もできないファイルを作ってみます。
用途としては、例えばログファイルを作る場合に有効ではないでしょうか。
時に重要な意味を持つログファイルは、運用の中で削除されてしまっては困ります。
ただ、変更もできないとなるとログファイルへの書き込みができません。
追加で書き込むのは許可しつつも、ファイルの削除はされたくないという場合に、この権限設定が活きてきます。
# cat foo.txt abc # chattr +a foo.txt # echo "xyz" > foo.txt -bash: foo.txt: 許可されていない操作です # echo "xyz" >> foo.txt # cat foo.txt abc xyz # rm foo.txt rm: remove 通常ファイル `foo.txt'? y rm: cannot remove `foo.txt': 許可されていない操作です # chattr -a foo.txt # rm foo.txt rm: remove 通常ファイル `foo.txt'? y (削除される)
追記モードでしかファイルを開かせないためのオプションは「+a」オプションです。
この特殊な権限を取り除きたい場合は、「-a」オプションをつけて実行します。
■特殊な権限を見るためのlsattrコマンド
この特殊な権限は、lsコマンドでは表されていません。
lsattrコマンドで権限が閲覧できます。












