변경할 수 없는 암호화된 파일을 삭제하는 방법은 무엇입니까?

변경할 수 없는 암호화된 파일을 삭제하는 방법은 무엇입니까?

ext4 파일 시스템에서 암호화하려고 하는데 fscrypt(을 통해) 불변으로 설정된 파일을 (을 사용하여) 암호화했습니다 chattr +i. 이제 암호화 키를 잃어버렸고 fscrypt.

파일을 삭제하고 싶은데 삭제하려고 하면 다음 오류가 발생합니다.

# rm foo
rm: cannot remove 'foo': Operation not permitted

변경 가능하게 만들려고 하면 다음과 같습니다.

# chattr -i foo
chattr: Required key not available while reading flags on foo

따라서 파일은 변경할 수 없고 암호화로 인해 해당 속성을 변경할 수 없기 때문에 파일을 삭제할 수 없다고 생각합니다. 어떤 제안이 있으십니까?


편집하다:

다음을 시도했지만 작동하지 않습니다.

  1. Live USB의 파일을 삭제/수정합니다. 동일한 오류가 발생합니다.
  2. Ángel의 제안에 따라 기능을 제거한 후 시도해 보세요 encrypt. fsck어떤 이유로든 오류가 발생하지도 않습니다.

findmnt( testdir포함) 및 파일 시스템 속성 출력 foo:

$ findmnt --target testdir
TARGET SOURCE    FSTYPE OPTIONS
/      /dev/sda4 ext4   rw,relatime

# tune2fs -l /dev/sda4 | grep "Filesystem features"
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum

답변1

파일 시스템을 마운트 해제한 후 를 사용하여 파일을 삭제할 수 있습니다 debugfs -w -R "rm path_to_file" /dev/sda1.

답변2

가장 쉬운 방법은 새 ext4 파티션을 포맷하고 다시 시작하는 것입니다. 하지만 이것이 귀하에게 불편할 수 있다는 점을 이해합니다.

파티션이 /dev/sda1에 있다고 가정하면 파일 시스템이 마운트되지 않은 경우 다음을 수행하려고 합니다.

debugfs -w -R "feature -encrypt" /dev/sda1
fsck.ext4 /dev/sda1

debugfs 명령은 ext4 파일 시스템에서 암호화 기능을 제거하며, 다음 fsck는 모든 암호화된 디렉터리를 오류로 감지하고 이를 제거해야 합니다. 삭제되지 않더라도 암호화 플래그가 사라지고 콘텐츠가 쓰레기가 될 것으로 예상하므로 이를 불변으로 만들고 일반적인 방법으로 삭제할 수 있어야 합니다.

관련 정보