Linuxの拡張ファイルシステム

投稿者: | 4月 5, 2021

Linux Kernel 2.6が出た時に、Extend Attributeがサポートなんていうのが出てきたので、調べたことがある。当時、某企業でファイルシステムを担当だったので。
今改めて見てみると、
ext2, ext3, ext4, JFS, Squashfs, Yaffs2, ReiserFS, Reiser4, XFS, Btrfs, OrangeFS, Lustre, OCFS2 1.6, ZFS, F2FS
が出てくる。まぁ、ext2を今更選択する人はいないとおもうけど。大抵のメジャーなファイルシステムでサポートされている。

これ何につかうの?
例えば、消されたくないファイル作成したいときなど。一番使っているのは、マルウェアの作者かもしれない。大抵、マルウェアにはこの属性がついていて、おいそれと消せない。

消せないファイルを作るデモ
# touch testfile
# ls -l
total 0
-rw-r–r– 1 root root 0 Apr 4 17:22 testfile
まぁ、このファイルはrootなら消せる。拡張属性を表示してみる。
# lsattr testfile
————–e— testfile
拡張属性「i」をつけてみる
# chattr +i testfile
# lsattr testfile
—-i———e— testfile

消してみる。
# rm testfile
rm: cannot remove ‘testfile’: Operation not permitted
消えなかった。拡張属性「i」を外してみる
# chattr -i testfile
# lsattr testfile
————–e— testfile
拡張属性が外れた。消してみる。
# rm testfile
消えた。

man chattrをすると色々なオプションがある。ただ、ファイルシステムによっては使えたり、使えないものがあるので注意が必要。

マルウェアに当たった時、闇雲に削除しても、必要なファイルだけ消え、マルウェアだけが残ることもある。もし、疑わしいファイルが見つかったらlsattrで調べることをおすすめする。普通のファイルには属性が e しか付いていないはず。

コメントを残す