ふと、rootでも消せないファイルに出会った。
1 2 3 4 5 6 7 8 |
# rm cant-delete.txt rm: `cant-delete.txt' を削除できません: 許可されていない操作です # whoami root # ls -l -rw-r--r-- 1 root root 9 12月 11 14:13 cant-delete.txt |
なんでやねーん。と思っていろいろ調べたところ、lsattrコマンドで確認してみると良いとのこと。
1 2 |
# lsattr cant-delete.txt ----i--------e-- cant-delete.txt |
このiフラグが付いてると、例えrootであろうと、変更削除が出来ない。
このフラグを取るには、chattrにハイフン(-)取りたいフラグとしてあげればよい。
今回は、
1 2 3 4 |
# chattr -i cant-delete.txt # lsattr cant-delete.txt -------------e-- cant-delete.txt |
逆に付けたい場合は、プラス(+)
1 2 3 |
# chattr +i cant-delete.txt # lsattr cant-delete.txt ----i--------e-- cant-delete.txt |
他にも沢山フラグがあるようだが、
- i: ファイルの変更を許可しない。削除もリネームもできない。(immutable)
- a: ファイルの追加書き込みのみ許可する。(append)
- c: ファイルを圧縮してディスクに保存する。アプリレベルは影響を受けない。(compress)
使えそうなのは、このくらいかな。他にもあるけどよくわからん。
例えrootだろうと消したくないファイルがあったら、iを付けとけば、なにかの時に助かるかも。