Linuxファイルのプロパティはa
通常、ファイルに適用可能なものとして文書化されています。
chattr(1) マンページ:
「a」属性が設定されているファイルは書き込みモードでのみ開くことができます。
0x20ファイルは追加のみ可能ですEXT4_APPEND_FL)。
私の質問は次のとおりです
- ファイルのみ
chattr +a
? - 新しいサブディレクトリとファイルで繰り返されますか?
ベストアンサー1
これ追加のみフラグ(chattr +a
)はディレクトリの削除を防ぎます。井戸だけでなくこのディレクトリ内に直接作成されたファイルとディレクトリ:
テストディレクトリとファイルを作成します。
# mkdir /tmp/foo
# chattr +a /tmp/foo
このディレクトリは削除できません。
# rmdir /tmp/foo
rmdir: failed to remove ‘/tmp/foo’: Operation not permitted
これで、その中にファイルとディレクトリを作成します。
# touch /tmp/foo/bar
# mkdir /tmp/foo/baz
確認してみましょう:
# lsattr -d /tmp/foo /tmp/foo/ba*
-----a-------e-- /tmp/foo
-------------e-- /tmp/foo/bar
-------------e-- /tmp/foo/baz
何かを取り除いてみてください:
# rm /tmp/foo/bar
rm: cannot remove ‘/tmp/foo/bar’: Operation not permitted
# rmdir /tmp/foo/baz
rmdir: failed to remove ‘/tmp/foo/baz’: Operation not permitted
rm -Rf /tmp/foo
rm: cannot remove ‘/tmp/foo/bar’: Operation not permitted
rm: cannot remove ‘/tmp/foo/baz’: Operation not permitted
最後に、サブサブディレクトリとサブディレクトリのファイル保護されていない:
# mkdir /tmp/foo/baz/bat
# touch /tmp/foo/baz/baff
# rm --verbose -Rf /tmp/foo/baz
removed directory: ‘/tmp/foo/baz/bat’
removed ‘/tmp/foo/baz/baff’
rm: cannot remove ‘/tmp/foo/baz’: Operation not permitted
/tmp/foo
追加のフラグだけがあることをもう一度参照してください。
# lsattr -d /tmp/foo /tmp/foo/baz
-----a-------e-- /tmp/foo
-------------e-- /tmp/foo/baz