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:
Config |
Gibt den Namen der Datenbank an, aus der die Konfigurationsdaten geladen werden. |
Templates
Gibt den Namen der Datenbank an, die für das Zwischenspeichern von Vorlagen zu benutzen ist.
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.
File |
Dieser Datenbank-Treiber erlaubt Debconf, eine vollständige Datenbank in einer einzelnen flachen Textdatei zu speichern. Dies erlaubt einfaches Archivieren, Transferieren zwischen Maschinen und Editieren. Es ist eines der kompakteren Datenbank-Formate hinsichtlich des benutzten Plattenplatz. Es ist auch eins der langsamsten. |
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
DirTree
Dieser Datenbank-Treiber erlaubt Debconf, Daten in einer hierarchischen Verzeichnisstruktur zu speichern. Die Namen der verschiedenen Debconf-Vorlagen und -Fragen werden benutzt, wie sie sind, um Verzeichnisse mit Dateien darin zu formen. Dieses Datenbanken-Format ist das einfachste, wenn es darum geht, von Hand zu stöbern und zu tricksen. Es hat sehr gute Lade- und Speicher-Geschwindigkeiten. Es beansprucht typischerweise auch den meisten Platz, weil viele kleine Dateien und Unterverzeichnis zusätzlichen Raum nehmen.
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
PackageDir
Dieser Datenbank-Treiber ist ein Kompromiss zwischen den Datenbanken »File« und »DirTree«. Er benutzt ein Verzeichnis, in dem es (ungefähr) eine Datei pro Paket, das Debconf benutzt, gibt. Dies ist ziemlich schnell, während es wenig mehr Platz als der Datenbank-Treiber »File« benutzt.
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
LDAP |
WARNUNG: Dieser Datenbank-Treiber ist gegenwärtig experimentell. Mit Vorsicht zu benutzen. |
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.
Diese Option sollte nicht im generellen Falle benutzt werden. Anonyme Bindung sollte die meiste Zeit für Nur-Lese-Zugriff ausreichend sein. Bindungs-DN und -Password sollte für den gelegentlichen Fall reserviert werden, in dem Sie die Debconf-Konfigurationsdaten aktualisieren wollen.
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.
Beachten Sie, dass, wenn diese Option gesetzt ist, die Verbindung zum LDAP-Server während des gesamten Debconf-Laufs aktiv gehalten wird. Dies ist ein wenig verschieden zu dem Alles-in-Einem-Verhalten, wo zwei kurze LDAP-Verbindungen erfolgen; am Anfang, um alle Einträge zu holen, und am Ende, um mögliche Änderungen zu speichern.
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
Pipe |
Dieser Datenbankentreiber für besondere Anlässe liest und schreibt die Datenbank von der Standardein/-ausgabe. Er mag für Leute mit besonderen Bedürfnissen nützlich sein. |
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.
Stack |
Dieser Treiber stapelt eine Anzahl anderer Datenbanken (jeglichen Typs), und erlaubt, auf sie zuzugreifen, als ob sie eine einzige wären. Wenn Debconf einen Wert anfragt, gibt die erste Datenbank in dem Stapel, die den Wert enthält, ihn zurück. Falls Debconf etwas in die Datenbank schreibt, wird normalerweise auf den ersten Treiber in dem Stapel, der das modifizierte Element enthält, geschrieben, und falls es keiner hat, wird das neue Element der ersten schreibbaren Datenbank auf dem Stapel hinzugefügt. |
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
Dieser Treiber leitet alle Anfragen an einen anderen Datenbankentreiber weiter. Aber er kopiert auch alle Schreibe-Anfragen als Sicherheitskopie an einen zweiten Datenbankentreiber.
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. |
Backupdb
Der Name der Datenbank, an die Kopien von Schreibzugriffen gesendet werden sollen.
Zum Beispiel:
Name: backup
Driver: Backup
Db: mydb
Backupdb: mybackupdb
Debug
Dieser Treiber leitet alle Anfragen an einen anderen Datenbankentreiber weiter, und gibt eine wortreiche Ausgabe zur Fehlersuche über Anfrage und Ergebnis aus.
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 [AT] gmx.de> und 2008-2009, 2012 von Helge Kreutzmann <debian [AT] 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 [AT] debian.org>