Dies ist eine sehr grundlegende Frage, aber eine dieser Fragen, die sich nur schwer googeln lässt. Es scheint, dass die Konfiguration durch /etc/*.d
nicht alle Linux-Kernel unterstützt wird. Ich würde erstens gerne verstehen, wie man sich richtig auf das .d
Paradigma bezieht, und zweitens (wahrscheinlich über den Rahmen dieser Site hinaus) die Geschichte dahinter und warum unterschiedliche Konfigurationsstrategien gewählt wurden.
Danke.
Antwort1
Dies ist anscheinend eine sehr häufige Frage. Soweit ich das beurteilen kann, ist Ihre Frage die erste auf Stack Exchange, die nach den Vorteilen und/oder der Geschichte fragt, anstatt nur zu fragen, was es bedeutet, also werde ich sie hier direkt beantworten.
Bedeutet also .d
einfach „Verzeichnis“. Soweit ich das beurteilen kann, wurde dies mit sysvinit, mit den /etc/init.d/
oder /etc/rc.d
Ordnern, zu einer Sache. Diese enthalten immer separate Konfigurationsdateien, die von einem anderen Prozess analysiert oder aufgerufen werden.
Dafür gibt es einige Gründe:
Stellen Sie sich vor, Ihr Init-Prozess würde von einer einzigen Konfigurationsdatei gesteuert. Diese Datei würde groß und unhandlich werden. Webdienste wie verwenden dieses Paradigma, um die Trennung einzelner Websites oder virtueller Hosts in ihre eigenen Konfigurationsdateien zu fördern. (Dieser Ordner wird in den meisten Distributionen Nginx-Pakete
nginx
genannt , es gibt aber auch einen Ordner, der im Allgemeinen für Einstellungen gilt, die überall gelten.)sites-available
conf.d
Sicherheitstrennung (einigermaßen). Separate Konfigurationsdateien erlauben unterschiedliche Berechtigungen für jede Datei. Wenn einem Benutzer die Änderung eines für ihn relevanten Dienstes oder einer Einstellung zugetraut würde, könnte er nur die Dateien ändern, für die er die entsprechenden Rechte hat, anstatt ihm die Rechte für die „eine Datei, die sie alle beherrscht“ zu geben.
Einfache Fehlerbehebung/Neukonfiguration. Um auf nginx zurückzukommen: Angenommen, Sie müssen eine bestimmte Subdomain deaktivieren. Wenn jede Site in ihre eigene Konfigurationsdatei aufgeteilt ist, können Sie diese eine Datei einfach umbenennen oder entfernen, anstatt in eine einzelne große Datei zu gehen und Dinge auszukommentieren. Dasselbe gilt für Init – normalerweise werden Init-Skripte auf Sysv-Systemen durch Hinzufügen oder Entfernen symbolischer Links in Betrieb genommen und außer Betrieb gesetzt. Dies behandelt Runlevels usw. Sie müssen keinen Texteditor aufrufen.
Alle diese Vorteile werden durch eine sehr geringfügige Erhöhung der Komplexität erreicht.
Terminologie? Ich glaube nicht, dass es für dieses Design etwas Offizielles gibt, jeder nennt sie einfach „Punkt-D-Ordner“.
Weiterführende Literatur:
- Debian-Mailingliste:Wofür steht .d am Ende einiger Verzeichnis- und Dateinamen eigentlich?
- Eine ähnliche Frage zuUnix und Linux SE
- Eine ähnliche Frage zuFragenUbuntu