블록 장치의 원시 쓰기 용어는 무엇입니까?

블록 장치의 원시 쓰기 용어는 무엇입니까?

저는 파일 시스템 수준에서 쓰기를 허용하면서도 블록 장치(부팅 디스크(예: Apple의 SIP)와 같은 특정 블록 장치에만 해당)에 직접 쓰기 시도를 비활성화/거부하는 Linux용 솔루션을 찾고 있었습니다. .

grsecurity는 이 솔루션을 갖춘 첫 번째 프로젝트였고, 거기서 아이디어를 얻었습니다. 문제는 그것이 제공하는 나머지 부분에 대해 내가 필요하지 않거나 관심이 없으며 너무 포괄적이라는 것입니다. 읽기 전용으로 마운트되거나 마운트 해제된 모든 블록 장치는 자체적으로 읽기 전용이 되며(즉, 실행할 수 없음 dd if=/dev/zero of=/dev/sda1), 실행 중에 읽기-쓰기 상태라면 (다시) 마운트할 수 없습니다. 보호를 활성화하십시오. 그들의 코드를 보고 동일한 작업을 수행하기 위해 커널 모듈(및 단방향 sysctl 항목이 있는 커널 패치)을 작성했습니다. 나중에 이름만을 기반으로 원시 쓰기 /dev/sda작업을 차단하도록 커널 모듈을 수정했습니다 /dev/sda1. 그런 다음 비정규 경로를 처리하는 방법을 몰랐기 때문에 주요 번호를 기반으로 쓰기만 차단하도록 다시 작성했습니다.

모듈이 훨씬 쉽기 때문에 커널을 포기했지만, 숫자를 하드코딩할 필요가 없도록 부팅 장치와 그 상위 장치를 결정할 수 있는 코드를 작성하는 방법을 안다면 더 쉬울 것입니다. 그래서 이것이 일반적인 아이디어(부팅 디스크를 대상으로 하지 않음)일 것이라고 생각하여 해결책을 찾기 위해 Google을 찾았습니다. 내 결과는 원시 장치, 법의학용 쓰기 차단기 및 메모리 관련 원시 IO에만 관련됩니다. 데이터 저장 장치에 직접 쓰기를 금지하는 시스템을 설명하는 데 사용되는 용어는 무엇입니까?

관련 정보