/etc 디렉토리를 읽기 전용으로 만드는 것은 나쁜 생각입니까?

/etc 디렉토리를 읽기 전용으로 만드는 것은 나쁜 생각입니까?

buildroot 및 initramfs를 사용하여 내장된 시스템 설정을 구축했습니다. 이는 마운트 /etc//var디렉토리를 위한 별도의 ext3 파티션과 데이터를 저장하기 위한 사용자 정의 디렉토리를 생성한 컴팩트 플래시 장치에서 실행됩니다. 이것이 좋은 생각인지는 확실하지 않지만 syslog 출력에 액세스해야 하고 파일을 /etc고정 IP 주소로 구성해야 하기 때문에 파일을 수정할 수도 있어야 합니다 . /etc/network/interfacesIP를 설정하기 위해 파일을 편집하고 나면 더 이상 수동으로 편집할 필요가 없으므로 /etc장치가 현장에 있는 동안 이 설치를 읽기 전용으로 설정하는 것이 좋은 생각인지, 아니면 읽기 전용으로 설정하는 것이 좋은 것인지 궁금합니다. 내 시스템의 다른 앱에서도 가능합니다. 프로그램이 /etc의 모든 파일에 작성해야 합니까? 상당히 작은 시스템을 실행하고 있으며 실제로는 dropbear 및 busybox만 실행 중입니다(장치를 제어하는 ​​사용자 정의 컨트롤러 앱과 함께). 다양한 포럼과 웹사이트를 살펴봤고 그 아이디어는 그다지 논란의 여지가 없어 보이지만 내 지식은 다소 제한적입니다. 읽기 전용으로 마운트할 수 있다는 것을 알고 있지만 문제가 조용히 중단될 수 있는 것 같으니 그게 나쁜 생각인가요?

답변1

읽기 전용은 /etc임베디드 장치에서 점점 더 보편화되고 있습니다. 거의 변경되지 않는 파일은 /etc데스크톱 및 서버 설치에서도 점점 일반화되고 있으며, 파일은 다른 파일 시스템에 있고 기호로 링크되어 /etc/mtab있습니다 (따라서 소프트웨어가 설치되거나 컴퓨터 구성이 변경되면 파일을 수정해야 하지만 설치할 때는 USB 드라이브 또는 다른 네트워크에 연결된 노트북)./etc/resolv.conf/etc/etc

새로운 표준은 tmpfs 파일 시스템 /run/etc유사한 기호 링크를 마운트하는 것입니다.

/etc/mtab -> /run/mtab
/etc/resolv.conf -> /etc/resolvconf/run/resolv.conf

/dev/shm기존 또는 임베디드 시스템 에는 tmpfs가 다른 위치에 설치되어 있을 수 /lib/init/rw있습니다 /var/run.

읽기 전용으로 만들 때의 문제점은 /etc수정할 수 있는 파일 세트가 잠긴다는 것입니다.

이 문제를 피하는 또 다른 방법은 루트 파일 시스템을 initramfs로 만드는 것입니다. 이는 커널 이미지 옆에 저장되고 부트로더에 의해 로드되는 아카이브입니다. RAM으로 압축이 풀려 파일 시스템 루트의 루트가 됩니다. initramfs를 유지하려는 경우 너무 커서는 안 됩니다(귀중한 RAM을 사용하므로). 그러나 BusyBox 바이너리와 일부 구성 파일은 아마도 RAM을 사용하는 데 허용되는 방법일 것입니다.

또 다른 접근 방식은 읽기 전용 루트 파일 시스템과공동 설치파일 시스템을 읽고 씁니다.

답변2

이는 배포판에 따라 다르지만 제가 생각할 수 있는 몇 가지 사항은 다음과 같습니다.

/etc/mtab, /etc/adjtime/etc/resolv.conf수정이 필요할 수 있는 일반적인 파일입니다. /etc/motd그럴 /etc/issue수도 있습니다. cups또한 자체적으로 일부 구성 파일을 업데이트합니다. 어떤 경우에는 파일을 만들어야 할 수도 있습니다 nologin./etc

대부분의 경우 파일을 /var.

답변3

있는지 확인해 보세요.아무것도 없다거기에서 수정이 이루어졌습니다. 마지막 수정 시간(ls(1)에서 보고한 대로)은 충분해야 합니다. 현재 많은 Linux 배포판이 이미(또는 거의) 존재해야 합니다. 읽기 전용으로 설정하고 로그에서 불평하는 내용을 찾아볼 수 있습니다.

OTOH, /etc는 매우 작기 때문에 R/W 공간을 절약하는 데 별 의미가 없습니다.

관련 정보