DEBCONF.CONF(5) | File Formats Manual | DEBCONF.CONF(5) |
NAME¶
debconf.conf - Konfigurations-Datei für Debconf
BESCHREIBUNG¶
Debconf ist ein Konfigurationssystem für Debian-Pakete. /etc/debconf.conf und ~/.debconfrc sind Konfigurationsdateien, die Debconf benutzt, um herauszufinden, welche Datenbanken es benutzen soll. Diese Datenbanken werden für das Speichern von zwei Arten von Informationen benutzt; dynamische Konfigurationsdaten, die der Benutzer eingibt, und statische Vorlagendaten. Debconf bietet ein flexibles, erweiterbares Datenbanken-Backend. Neue Treiber können mit minimalem Aufwand erzeugt werden, und Treiber-Sätze können auf verschiedene Weise kombiniert werden.
ÜBERSICHT¶
# Dies ist eine einfache Konfigurationsdatei,
# die ausreichend ist, um Debconf zu benutzen
Config: configdb
Templates: templatedb
Name: configdb
Driver: File
Filename: /var/cache/debconf/config.dat
Name: templatedb
Driver: File
Mode: 644
Filename: /var/cache/debconf/templates.dat
DATEIFORMAT¶
Das Format dieser Datei ist eine Folge von Absätzen, jeweils getrennt durch mindestens eine vollständig leere Zeile. Kommentarzeilen, die mit dem Zeichen »#« beginnen, werden ignoriert.
Der erste Absatz der Datei ist besonders, er wird benutzt, um Debconf im Ganzen zu konfigurieren. Zwei Felder sind in diesem ersten Absatz erforderlich:
Zusätzliche Felder, die benutzt werden können, schließen ein:
- Frontend
- Die Benutzerschnittstelle, die Debconf benutzen soll, dies überstimmt jede Schnittstellen-Einstellung in der Debconf-Datenbank.
- Priority
- Die Priorität, die Debconf benutzen soll, dies überstimmt jede Prioritätseinstellung in der Debconf-Datenbank.
- Admin-Email
- Die E-Mail-Adressen, an die Debconf E-Mail schicken soll, falls sichergestellt werden muss, dass der Administrator eine wichtige Nachricht gesehen hat. Standardmäßig »root«, dies kann auf jede gültige E-Mail-Adresse gesetzt werden, um die E-Mail dorthin zu schicken. Dies kann im Vorbeigehen durch die Umgebungsvariable DEBCONF_ADMIN_EMAIL überstimmt werden.
- Debug
- Falls gesetzt, lässt dies Debconf Informationen zur Fehlersuche auf die Standardfehlerausgabe ausgeben. Der Wert, auf den dies gesetzt wird, kann so etwas wie »user«, »developer«, »db« oder ein regulärer Ausdruck sein. Typischerweise, statt es permanent in einer Konfigurationsdatei zu setzen, wollen Sie die Fehlersuche nur zeitweise anstellen, und die Umgebungsvariable DEBCONF_DEBUG kann stattdessen gesetzt werden, um dies zu bewerkstelligen.
- NoWarnings
- Falls gesetzt, lässt dies Debconf Warnungen über verschiedene Dinge nicht anzeigen. Dies kann im Vorbeigehen durch die Umgebungsvariable DEBCONF_NOWARNINGS überstimmt werden.
- Log
- Lässt Debconf, während es läuft, Informationen zur Fehlersuche in das Syslog schreiben. Der Wert, auf den dies gesetzt wird, kontrolliert, was protokolliert wird. Siehe oben »Debug« für eine Erklärung der Werte, die gesetzt werden können, um zu kontrollieren, was protokolliert wird.
- Terse
- Falls auf »true« gesetzt, lässt dies einige Debconf-Benutzerschnittstellen einen besonders knappen Anzeigemodus benutzen, der so wenig wie möglich ausgibt. Der knappe Modus kann temporär über die Umgebungsvariable DEBCONF_TERSE gesetzt werden.
Der erste Abschnitt der Datei kann wie folgt aussehen:
Config: configdb
Templates: templatedb
Jeder verbleibende Absatz in der Datei richtet eine Datenbank ein.
Ein Datenbankenabschnitt beginnt mit der Benennung der Datenbank:
Name: configdb
Dann wird angezeigt, welcher Datenbank-Treiber für diese
Datenbank benutzt werden soll. Siehe unten TREIBER für Informationen,
welche Treiber verfügbar sind.
Driver: File
Sie können angeben, dass die Datenbank nicht essenziell
für die ordnungsgemäße Funktionsweise von Debconf ist,
indem Sie sagen, dass sie nicht erforderlich ist. Dies lässt Debconf
fortfahren, falls die Datenbank aus irgendeinem Grund scheitert.
Required: false
Sie können jede Datenbank als nur-lesend markieren, und
Debconf schreibt nichts hinein.
Readonly: true
Sie können mit Accept- und Reject-Zeilen auch begrenzen, welche Arten von Daten in die Datenbank gelangen können; siehe unten ZUGRIFFSKONTROLLE.
Der Rest jedes Datenbanken-Absatz wird benutzt, um Konfiguration
speziell zu diesem Treiber bereitzustellen. Zum Beispiel muss der Treiber
Text ein Verzeichnis wissen, in das er die Datenbank packt, so dass Sie
sagen könnten:
Filename: /var/cache/debconf/config.dat
TREIBER¶
Eine Reihe von Treibern sind verfügbar, und mehr noch können mit wenig Schwierigkeit geschrieben werden. Treiber gibt es in zwei generellen Typen. Zuerst gibt es echte Treiber -- Treiber die tatsächlich auf Daten in irgendeiner Form von Datenbank zugreifen und speichern, welche im lokalen Dateisystem oder auf einem entfernten System sein können. Dann gibt es Meta-Treiber, die andere Treiber kombinieren, um interessantere Systeme zu formen. Lassen Sie uns mit ersteren beginnen.
Als Nachteil muss die gesamte Datei eingelesen werden, jedes Mal, wenn Debconf startet, und Speichern ist ebenfalls langsam.
Die folgenden Dinge sind für diesen Treiber konfigurierbar:
- Filename
- Die Datei, die als Datenbank benutzt werden soll. Dies ist ein erforderliches Feld.
- Mode
- Die Berechtigungen, mit denen die Datei erzeugt wird, falls sie nicht existiert. Standardmäßig 600, weil die Datei unter Umständen Passwörter enthalten könnte.
- Format
- Das Format der Datei. Siehe unten FORMATE. Standardmäßig wird ein RFC-822-ähnliches Format benutzt.
- Backup
- Ob von der alten Datei eine Sicherheitskopie gemacht werden soll, bevor sie verändert wird. Standardmäßig »true«.
Ein Beispiel-Absatz, der eine Datenbank unter Benutzung dieses Treiber einrichtet:
Name: mydb
Driver: File
Filename: /var/cache/debconf/mydb.dat
Die folgenden Dinge sind für diesen Treiber konfigurierbar:
- Directory
- Das Verzeichnis, in das die Dateien gelegt werden. Erforderlich.
- Extension
- Eine Erweiterung, die den Namen von Dateien hinzugefügt werden. Muss auf eine nicht-leere Zeichenkette gesetzt werden; standardmäßig ».dat«
- Format
- Das Format der Datei. Siehe unten FORMATE. Standardmäßig wird ein RFC-822-ähnliches Format benutzt.
- Backup
- Ob von der alten Datei eine Sicherheitskopie gemacht werden soll, bevor sie verändert wird. Standardmäßig »true«.
Ein Beispiel-Absatz, der eine Datenbank unter Benutzung dieses Treiber einrichtet:
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/mydb
Extension: .txt
Dieser Treiber ist auf dieselbe Weise wie der Treiber DirTree konfigurierbar, und zusätzlich:
- Mode
- Die Berechtigungen, mit denen Dateien erzeugt werden. Standardmäßig 600, da die Dateien unter Umständen Passwörter enthalten könnten.
Ein Beispiel-Absatz, der eine Datenbank unter Benutzung dieses Treiber einrichtet:
Name: mydb
Driver: PackageDir
Directory: /var/cache/debconf/mydb
Dieser Datenbank-Treiber greift für Debconf-Konfigurationsdaten auf ein LDAP-Verzeichnis zu. Wegen ihrer vertrackten Natur sollte auf LDAP-Verzeichnisse typischerweise im Nur-Lese-Modus zugegriffen werden. Dies ist notwendig, weil mehrere gleichzeitige Zugriffe stattfinden können, und es ist generell besser für die Daten-Konsistenz, dass niemand versucht, die Daten zu verändern, während der Zugriff erfolgt. Selbstverständlich wird Schreibzugriff unterstützt, in den Fällen, in denen Sie die Konfigurationsdaten in dem Verzeichnis aktualisieren wollen.
Für Informationen über das Einrichten eines LDAP-Server für Debconf lesen Sie /usr/share/doc/debconf-doc/README.LDAP (im Paket debconf-doc)
Um diesen Datenbank-Treiber zu benutzen, müssen Sie das Paket libnet-ldap-perl installieren. Debconf schlägt dieses Paket vor, hängt aber nicht von ihm ab.
Bitte erwägen Sie sorgfältig die Sicherheits-Auswirkungen, die die Verwendung einer entfernten Debconf-Datenbank mit sich bringt. Solange Sie nicht der Quelle und dem zwischengelegenen Netzwerk vertrauen, ist dies keine sichere Sache.
Die folgenden Dinge sind für diesen Treiber konfigurierbar:
- server
- Hostname oder IP-Adresse des LDAP-Servers, mit dem verbunden werden soll.
- port
- Der Port, auf dem mit dem LDAP-Server verbunden werden soll. Falls nicht angegeben, wird der standardmäßige Port benutzt.
- basedn
- Die DN, unter der alle Konfigurationselemente gespeichert werden. Von jedem Konfigurationselement wird angenommen, dass es in einer DN cn=<item name>,<Base DN> existiert. Falls dieser Struktur nicht gefolgt wird, wird für nichts garantiert.
- binddn
- Die DN, als die das Verzeichnis zu binden ist. Anonyme Bindung wird benutzt, falls keine angegeben wird.
- bindpasswd
- Das bei einer authentifizierten Bindung zu benutzende Passwort (benutzt mit binddn oben). Falls nicht angegeben, wird anonyme Bindung benutzt.
- keybykey
- Aktiviere Zugriff auf individuelle LDAP-Einträge, anstatt sie am Anfang alle auf einmal zu holen. Dies ist sehr nützlich, falls Sie die Abfrage bestimmter Debconf-Schlüssel in Ihren LDAP-Protokollen überwachen wollen. Auf diese Weise könnten Sie auch eigenen Behandlungscode auf der Seite des LDAP-Servers schreiben.
Ein Beispiel-Absatz, der eine Datenbank einrichtet, die diesen Treiber benutzt, unter Annahme, dass die entfernte Datenbank auf example.com ist und anonym zugegriffen werden kann:
Name: ldapdb
Driver: LDAP
Readonly: true
Server: example.com
BaseDN: cn=debconf,dc=example,dc=com
KeyByKey: 0
Noch ein Beispiel, diesmal ist die LDAP-Datenbank auf localhost, und kann beschrieben werden:
Name: ldapdb
Driver: LDAP
Server: localhost
BaseDN: cn=debconf,dc=domain,dc=com
BindPasswd: secret
KeyByKey: 1
Die folgenden Dinge sind für diesen Treiber konfigurierbar:
- Format
- Das zu lesende und zu schreibende Format. Siehe unten FORMATE. Standardmäßig ein RFC-822-ähnliches Format.
- Infd
- Nummer des Dateideskriptors von dem gelesen werden soll. Liest standardmäßig von Stdin. Falls auf »none« gesetzt, liest die Datenbank beim Starten keine Daten.
- Outfd
- Nummer des Dateideskriptors auf den geschrieben werden soll. Schreibt standardmäßig auf Stdout. Falls auf »none« gesetzt, wird die Datenbank beim Schließen verworfen.
Das sind alle echten Treiber, lassen Sie uns nun zu den Meta-Treibern gehen.
Die Dinge werden interessanter, falls eine der Datenbanken auf dem Stapel nur-lesend ist. Betrachten wir einen Stapel der Datenbanken Foo, Bar und Baz, wo Foo und Baz beide nur-lesend sind. Debconf will ein Element ändern, und dieses Element ist nur in Baz präsent, die nur-lesend ist. Der Stapel-Treiber ist klever genug, zu erkennen, dass das nicht funktioniert, und kopiert das Element von Baz nach Bar, und das Schreiben findet in Bar statt. Nun wird das Element in Baz von dem in Bar verdeckt, und ist für Debconf nicht mehr sichtbar.
Dieses ist vor allem nützlich, falls Sie viele Systeme auf eine zentrale, nur-lesende Datenbank verweisen wollen, wobei immer noch auf jedem System erlaubt ist, Dinge zu überstimmen. Wenn dem Bild Zugriffskontrollen hinzugefügt werden, erlauben Ihnen Stapel viele andere interessante Dinge zu tun, wie alle Passwörter in eine Datenbank umzuleiten, während eine Datenbank darunter alles andere behandelt.
Nur ein Konfigurationselement wird zum Einrichten eines Stapels benötigt:
- Stack
- Hier geben Sie eine Liste anderer Datenbanken namentlich an, um dem Treiber zu sagen, was den Stapel bildet.
Zum Beispiel:
Name: megadb
Driver: stack
Stack: passworddb, configdb, companydb
WARNUNG: Der Stapel-Treiber ist noch nicht sehr gut getestet. Auf eigenes Risiko zu verwenden.
Backup
Sie müssen für die Einrichtung dieses Treibers die folgenden Felder angeben.
Zum Beispiel:
Name: backup
Driver: Backup
Db: mydb
Backupdb: mybackupdb
Debug
Sie müssen für die Einrichtung dieses Treibers die folgenden Felder angeben.
- Db
- Die Datenbank, von der gelesen und auf die geschrieben werden soll.
ZUGRIFFSKONTROLLEN¶
Wenn Sie eine Datenbank einrichten, können Sie auch einige Felder benutzen, um Zugriffskontrollen anzugeben. Sie können zum Beispiel angeben, dass eine Datenbank nur Passwörter akzeptiert, oder eine Datenbank nur Dinge mit »foo« in ihrem Namen annehmen lassen.
- Readonly
- Wie vorher erwähnt, macht diese Zugriffskontrolle, falls auf »true« gesetzt, eine Datenbank nur-lesend. Debconf liest aus ihr Werte, aber schreibt niemals etwas in sie hinein.
- Accept-Name
- Der Text in diesem Feld ist ein Perl-kompatibler regulärer Ausdruck, der auf die Namen der Elemente, wie sie von der Datenbank angefragt werden, angewendet wird. Nur wenn der Name eines Elements mit dem regulären Ausdruck übereinstimmt, erlaubt die Datenbank Debconf auf es zuzugreifen oder es zu modifizieren.
- Reject-Name
- Wie Accept-Name, außer dass jedes Element, dessen Namen mit diesem regulären Ausdruck übereinstimmt, zurückgewiesen wird.
- Accept-Type
- Noch ein regulärer Ausdruck, dieser wird auf den Typ des zugegriffenen Elementes angewendet. Nur falls der Typ auf den Ausdruck passt, wird der Zugriff gestattet.
- Reject-Type
- Wie Accept-Type, außer dass jeder Typ, der auf diesen regulären Ausdruck passt, zurückgewiesen wird.
FORMATE¶
Einige der Datenbankentreiber benutzen Format-Module, um das eigentliche Format zu kontrollieren, in welchem die Datenbank auf Platte gespeichert wird. Diese Formate werden gegenwärtig unterstützt:
- 822
- Dies ist ein Dateiformat, das ungefähr auf dem RFC-822-Format für Kopfzeilen von E-Mails basiert. Ähnliche Formate werden überall in Debian benutzt; bei der dpkg-Status-Datei und so weiter.
BEISPIEL¶
Hier ist ein komplizierteres Beispiel einer Datei debconf.conf.
# Dieser Absatz richtet Debconf generell ein.
Config: stack
Templates: templates
Log: developer
Debug: developer
# Dies ist meine eigene lokale Datenbank.
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/config
# Dies ist eine weitere Datenbank, in der ich
# nur Konfiguration für den X-Server habe.
Name: X
Driver: File
Filename: /etc/X11/debconf.dat
Mode: 644
# Es ist ein wenig schwer, zu bestimmen,
# welche Fragen zu X11 gehören; man sollte
# eine tiefere Baumstruktur verwenden, so
# dass ich nur auf ^X/ zu schauen bräuchte
# Ach ja.
Accept-Name: xserver|xfree86|xbase
# Die ist die globale Debconf-Datenbank
# unserer Firma, (für mich) nur lesbar.
Name: company
Driver: LDAP
Server: debconf.foo.com
BaseDN: cn=debconf,dc=foo,dc=com
BindDN: uid=admin,dc=foo,dc=com
BindPasswd: secret
Readonly: true
# Ich möchte keine Passwörter, die in
# ihr enthalten sein könnten.
Reject-Type: password
# Falls diese DB aus welchem Grund auch nicht
# zugreifbar ist, mache einfach weiter.
Required: false
# In dieser Datenbank halte ich
# sicher Passwörter
Name: passwords
Driver: File
Filename: /etc/debconf/passwords
Mode: 600
Accept-Type: password
# Lassen Sie uns sie alle in
# einem Datenbankenstapel
# zusammenpacken
Name: stack
Driver: Stack
Stack: passwords, X, mydb, company
# Also kommen alle Passwörter in die
# Passwortdatenbank. Die meiste
# Konfiguration für X11 kommt in die
# Datenbank X, und alles andere kommt
# in meine Datenbank. Werte werden der
# Reihe nach in diesen nachgeschlagen,
# und wenn keine einen bestimmten Wert
# hat, wird in der Firmen-weiten LDAP-
# Datenbank nachgeschlagen (außer es
# ist ein Passwort).
# Auch für das Halten von Vorlagen wird eine
# Datenbank benutzt. Wir brauchen diese
# nicht so hübsch zu machen.
Driver: File
Mode: 644
Format: 822
Filename: /var/cache/debconf/templates
ANMERKUNGEN¶
Falls Sie in dieser Datei etwas wie ${HOME} benutzen, wird es durch den Wert der benannten Umgebungsvariablen ersetzt.
Umgebungsvariablen können auch benutzt werden, um die Datenbanken im Vorbeigehen zu überstimmen, siehe debconf(7).
Bei den Feldnamen (der Teil der Zeile vor dem Doppelpunkt) wird nicht auf Groß-/Kleinschreibung geachtet. Aber bei den Werten.
GEPLANTE ERWEITERUNGEN¶
Mehr Treiber und Formate. Einige Ideen beinhalten: Ein SQL-Treiber, mit der Fähigkeit, auf eine entfernte Datenbank zuzugreifen. Ein DHCP-Treiber, der einige besondere Dinge wie Hostname, IP-Adresse und DNS-Server verfügbar macht. Ein Treiber, der Werte aus TXT-Feldern in öffentlichen DNS-Einträgen zieht. Ein Format, das kompatibel mit der Ausgabe von cdebconf ist. Ein Überstimmungstreiber, der die Wert-Felder oder Flags von allen Anfragen, die durch ihn hindurchgeleitet werden, überstimmen kann.
DATEIEN¶
/etc/debconf.conf
~/.debconfrc
ÜBERSETZUNG¶
Die deutsche Übersetzung wurde 2008 von Florian Rehnisch <eixman@gmx.de> und 2008-2009, 2012 von Helge Kreutzmann <debian@helgefjell.de> angefertigt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 2 oder neuer für die Kopierbedingungen. Es gibt KEINE HAFTUNG.
SIEHE AUCH¶
AUTOR¶
Joey Hess <joeyh@debian.org>