![대용량 파일에서 fs-verity를 효과적으로 비활성화합니다.](https://linux55.com/image/199358/%EB%8C%80%EC%9A%A9%EB%9F%89%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20fs-verity%EB%A5%BC%20%E2%80%8B%E2%80%8B%ED%9A%A8%EA%B3%BC%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EB%B9%84%ED%99%9C%EC%84%B1%ED%99%94%ED%95%A9%EB%8B%88%EB%8B%A4..png)
FS_IOC_ENABLE_VERITY
ioctl을 사용하여 파일에서 fs-verity를 활성화한 다음(예: 명령 사용 fsverity enable
) 해당 파일에 다시 쓰려는 경우 fs-verity를 비활성화하려면 어떻게 해야 합니까 ? 이제 해결 방법은 파일을 복사한 다음 원본을 삭제하는 것이지만 파일이 큰 경우 이는 정말 비효율적입니다.
답변1
설계상으로는 그렇게 할 수 없습니다.이 위키 페이지에서는 rpm 패키지와 그 이유를 설명합니다.
"특정 파일에 대해 fs-verity가 활성화되면(RPM의 경우 패키지 설치 시 발생) 비활성화할 수 없으며 파일은 변경할 수 없게 됩니다.이름을 바꿔라() 또는풀리다() (실제로 패키지를 업그레이드할 때 rpm이 파일을 교체할 수 있는 방법입니다). 그러나 실제 내용은 변경할 수 없습니다. " ....
"공격자가 파일 시스템을 마운트(또는 액세스)하고 /bin/ls의 링크를 해제하고 이를 새 복사본으로 대량 교체(따라서 새 inode를 생성)한다고 가정합니다. 공격자서명 키가 없습니다, 그래서 그들은 파일을 다시 서명하고 파일에 대해 fs-verity를 활성화할 수 없습니다. (그들은 자신의 키로 다시 서명할 수 있지만 인증서를 커널 키링에 로드하는 방법을 찾을 수 없다면 효과가 크다). 이를 방지하기 위해 이제 몇 가지 옵션이 있습니다."