Linux에서 구성 메커니즘으로 /etc/*.d/를 사용하는 개념은 언제 소개되었으며, 이를 무엇이라고 부르나요?

Linux에서 구성 메커니즘으로 /etc/*.d/를 사용하는 개념은 언제 소개되었으며, 이를 무엇이라고 부르나요?

이것은 매우 기본적인 질문이지만 Google에서는 어려운 질문 중 하나입니다. /etc/*.d모든 Linux 커널에서는 구성을 통한 구성이 지원되지 않는 것 같습니다 . 먼저 패러다임을 올바르게 참조하는 방법을 이해하고 싶고 .d, 두 번째로 (아마도 이 사이트의 범위를 넘어서는) 그 뒤에 있는 역사와 다른 구성 전략이 선택된 이유를 이해하고 싶습니다.

감사해요.

답변1

이것은 분명히 매우 일반적인 질문입니다. 제가 아는 한, Stack Exchange에서 단순히 의미만 묻는 것이 아니라 혜택 및/또는 이력에 대해 질문한 것이 귀하의 첫 번째 것이므로 여기에 직접 답변해 드리겠습니다.

따라서 .d"디렉토리"를 의미합니다. 내가 알 수 있는 한, 이것은 sysvinit의 /etc/init.d/또는 /etc/rc.d폴더와 관련된 문제가 되었습니다. 여기에는 항상 다른 프로세스에 의해 구문 분석되거나 호출되는 별도의 구성 파일이 포함됩니다.

이 작업이 수행되는 이유는 다음과 같습니다.

  1. 초기화 프로세스가 단일 구성 파일로 제어된다고 상상해 보세요. 해당 파일은 커지고 다루기 어려워집니다. 웹 서비스는 nginx이 패러다임을 사용하여 개별 웹 사이트나 가상 호스트를 자체 구성 파일로 분리하도록 권장합니다. (이 폴더는 대부분의 배포판 Nginx 패키지에서 호출되지만 일반적으로 모든 곳에 적용되는 설정에 적용되는 폴더 sites-available도 있습니다 )conf.d

  2. 보안 분리(다소). 별도의 구성 파일은 각 파일에 대해 서로 다른 권한을 허용합니다. 한 사용자가 자신과 관련된 서비스나 설정을 수정하도록 신뢰된 경우 "모든 파일을 관리하는 하나의 파일"에 대한 권한을 부여하는 대신 권한이 있는 파일만 수정할 수 있습니다.

  3. 문제 해결/재구성이 쉽습니다. nginx로 돌아가서 특정 하위 도메인을 비활성화해야 한다고 가정해 보겠습니다. 각 사이트를 자체 구성 파일로 분할하면 하나의 큰 파일로 이동하여 주석을 달지 않고 해당 파일의 이름을 바꾸거나 제거할 수 있습니다. init에도 동일하게 적용됩니다. 일반적으로 sysv 시스템에서 init 스크립트는 기호 링크를 추가하거나 제거하여 서비스를 시작하거나 중단합니다. 이는 런레벨 등을 처리합니다. 텍스트 편집기를 호출할 필요가 없습니다.

복잡성이 아주 조금만 증가해도 이러한 모든 이점을 얻을 수 있습니다.

술어? 이 디자인에는 공식적인 것이 없다고 생각합니다. 모두가 "dot d 폴더"라고 부릅니다.

추가 내용:

관련 정보