![읽기 전용 권한을 사용하여 쓰기 가능한 파일 시스템 손상을 방지하는 방법은 무엇입니까?](https://linux55.com/image/155087/%EC%9D%BD%EA%B8%B0%20%EC%A0%84%EC%9A%A9%20%EA%B6%8C%ED%95%9C%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%93%B0%EA%B8%B0%20%EA%B0%80%EB%8A%A5%ED%95%9C%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EC%86%90%EC%83%81%EC%9D%84%20%EB%B0%A9%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
저는 Raspberry Pi용 임베디드 Buildroot 운영 체제를 개발 중입니다. 시스템은 전원을 끄기만 하면 종료되므로(종료 타이머 없음) SD 카드를 손상시키지 않고 정전을 처리할 수 있어야 합니다.
현재 시스템은 루트 파일 시스템으로 읽기 전용 squashfs를 사용하고 있으며 훌륭하게 작동합니다. 그러나 분명히 파티션에 쓸 수 없기 때문에 유연성이 부족합니다. 예를 들어, 새 소프트웨어를 설치하는 유일한 방법은 Buildroot에서 전체 운영 체제를 다시 빌드하는 것입니다. 그래서 이 설정을 변경하여 시스템을 읽기 전용으로 만들고 싶습니다.거의 항상하지만 특정 상황에서는 쓸 수 있습니다.
사용자 권한을 사용하여 SD 카드에 대한 모든 쓰기를 차단하는 가장 좋은 방법은 무엇입니까통제된 특정 상황을 제외하고? 나는 단순히 chmod -R u-w /
전체 파일 시스템에 대해 작업을 수행하여 사용자가 어디에도 아무것도 쓰지 못하게 하려고 생각했습니다. 그런 다음 콘텐츠를 작성하려면 사용자가 로 인증해야 합니다 sudo
.
이것이 믿을만한 방법인가?
내가 예상할 수 있는 한 가지 문제는 시작 시 운영 체제가 실행하는 프로세스가 루트로 실행되므로 쓰기 권한을 갖게 된다는 것입니다. 사용자가 명시적으로 명령하지 않는 한 운영 체제가 루트 파일 시스템에 아무것도 쓰지 못하도록 비활성화하는 방법을 찾아야 합니다.
권한이 없는 사용자로 실행되도록 시스템의 초기화 스크립트를 조정할 수 있습니다. 이전에 이 작업을 수행한 사람이 있습니까? 루트가 아닌 사용자로 시스템 프로세스를 시작할 수 있습니까?