이미지가 생성될 때 이미지의 구조를 설명하는 파일이 생성됩니다. 파일은 런타임에 변경될 수 있지만 변경 사항이 시스템에 반영되지 않으므로 이는 의미가 없습니다.
이 파일은 Linux 디렉터리 구조에서 어디에 배치되어야 합니까?
/etc
: 이것이 나에게 의미하는 바는 시스템 운영 중에 변경될 수 있는 구성이라는 것입니다. 적합하지 않습니다./var
: 실행 중에 파일이 변경되었음을 의미합니다. 적합하지 않습니다./proc
: 나에게 가장 적합합니다. 시스템 상태를 설명하는 임의의 파일입니다. 그러나 런타임 시에도 많은 파일이 변경됩니다.
답변1
파일 시스템 계층 표준 버전 3.0(2015년 출시)은 다음과 같이 말합니다 /etc
.
3.7. /etc: 호스트별 시스템 구성
3.7.1 목적 /etc 계층에는 구성 파일이 포함됩니다. "구성 파일"은 프로그램 실행을 제어하는 데 사용되는 로컬 파일이며 정적이어야 하며 실행 가능한 바이너리일 수 없습니다.
/etc에 직접 저장하기보다는 /etc의 하위 디렉토리에 파일을 저장하는 것이 좋습니다.
3.7.2. /etc 아래에는 바이너리 파일이 없어야 합니다.
알아채다시스템 작동 중에 파일을 변경해야 한다는 것이 요구되거나 암시되지는 않습니다.
실용적인 선례도 있습니다. 많은 배포판에서는 RHEL, SuSE, Debian 등 배포 이름과 버전을 식별하는 파일을 넣습니다 /etc
. 이러한 파일은 일반적으로 중요한 패치 수준 업데이트를 설치할 때 패키지 관리 시스템에 의해서만 업데이트됩니다. 전체 시스템 이미지를 다시 로드하여 "클라우드에서" 유지 관리되는 시스템에서는 이러한 파일이 계속 존재해야 하지만 이미지 설명 파일과 마찬가지로 특정 이미지의 수명 동안 실제로 변경되지 않습니다./etc/redhat-release
/etc/SuSE-release
/etc/debian_version
이미지 설명 파일이 변경되지 않음을 분명히 하고 싶다면 다음 chattr +i
과 같이 표시 하면 됩니다.불변(이 속성을 지원하는 파일 시스템 유형을 사용한다고 가정). 나중에 파일을 다시 변경할 수 있도록 하려면 의도적이고 거의 사용되지 않는 권한 있는 명령이 필요합니다.