Scroll to navigation

DEBCONF.CONF(5) File Formats Manual DEBCONF.CONF(5)

NUME

debconf.conf - fișierul de configurare debconf

DESCRIERE

Debconf este un sistem de configurare pentru pachetele Debian. „/etc/debconf.conf” și „~/.debconfrc” sunt fișiere de configurare pe care debconf le folosește pentru a determina ce baze de date ar trebui să folosească. Aceste baze de date sunt folosite pentru stocarea a două tipuri de informații; date de configurare dinamice pe care utilizatorul le introduce în ele și date statice de șablon. Debconf oferă un sistem de control (driver) a bazelor de date flexibil și extensibil. Noi sisteme de control pot fi create cu un minim de efort, iar seturile de sisteme de control pot fi combinate în diverse moduri.

SINOPSIS


# Acesta este un exemplu de fișier de configurare
# care este suficient pentru a utiliza debconf.
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

FORMATUL FIȘIERULUI

Formatul acestui fișier este o serie de strofe, fiecare separată de cel puțin un rând complet gol. Liniile de comentariu care încep cu un caracter „#” sunt ignorate.

Prima strofă a fișierului este specială, este utilizată pentru a configura debconf ca un întreg. Două câmpuri trebuie să fie în această primă strofă:

Specifică numele bazei de date din care se încarcă datele de configurare.
Specifică numele bazei de date care urmează să fie utilizată pentru cache-ul șablonului.

Câmpurile suplimentare care pot fi utilizate includ:

Interfața pe care Debconf ar trebui să o utilizeze, cu prioritate față de orice interfață definită în baza de date debconf.
Prioritatea pe care trebuie să o utilizeze Debconf, care prevalează asupra oricărei priorități definite în baza de date debconf.
Adresa de e poștă electronică la care Debconf ar trebui să trimită mesaje dacă trebuie să se asigure că administratorul a văzut un mesaj important. Valoarea implicită este „root”, dar poate fi definită la orice adresă de poștă electronică validă pentru a trimite mesajul acolo. Dacă preferați ca debconf să nu vă trimită niciodată mesaje, specificați o adresă goală. Acest lucru poate fi anulat din mers cu variabila de mediu DEBCONF_ADMIN_EMAIL.
Dacă este activată, aceasta va determina debconf să emită informații de depanare la ieșirea de eroare standard. Valoarea la care este definită poate fi ceva de genul „user”, „developer”, „db” sau o expresie regulată. De obicei, mai degrabă decât să o definiți permanent într-un fișier de configurare, veți dori doar să activați temporar depanarea, iar variabila de mediu DEBCONF_DEBUG poate fi definită pentru a realiza acest lucru.
Dacă este activată, aceasta va face ca debconf să nu afișeze avertismente cu privire la diverse lucruri. Acest lucru poate fi anulat din mers cu variabila de mediu DEBCONF_NOWARNINGS.
Face ca debconf să înregistreze informațiile de depanare pe măsură ce rulează, în syslog. Valoarea la care este definită controlează ceea ce este înregistrat. Consultați Debug, mai sus, pentru o explicație a valorilor care pot fi definite pentru a controla ceea ce este înregistrat.
Dacă este stabilită la „true”, face ca unele interfețe debconf să utilizeze un mod special de afișare laconică care afișează cât mai puțin posibil. Valoarea implicită este „false”. Modul „Terse” (laconic) poate fi activat temporar prin intermediul variabilei de mediu DEBCONF_TERSE.

De exemplu, prima strofă a unui fișier poate arăta astfel:
Config: configdb
Templates: templatedb

Fiecare strofă rămasă în fișier stabilește o bază de date. O strofă de bază de date începe prin numirea bazei de date:
Name: configdb

Apoi indică ce sistem de control (driver) de bază de date ar trebui utilizat pentru această bază de date. Consultați SISTEME DE CONTROL, mai jos, pentru informații despre sistemele de control disponibile.
Driver: File

Puteți indica faptul că baza de date nu este esențială pentru buna funcționare a debconf prin a spune că nu este necesară. Acest lucru va face ca debconf să meargă mai departe dacă baza de date eșuează din anumite motive.
Required: false

Puteți marca orice bază de date ca „readonly” (numai-citire) și debconf nu va scrie nimic în ea.
Readonly: true

De asemenea, puteți limita tipurile de date care pot intra în baza de date cu ajutorul liniilor Accept- și Reject-; a se vedea CONTROLUL ACCESULUI, mai jos.

Restul fiecărei strofe a bazei de date este utilizat pentru a furniza configurația specifică sistemului de control (driver) respectiv. De exemplu, sistemul de control „Text” trebuie să știe că are un director în care să plaseze baza de date, așa că puteți spune:
Filename: /var/cache/debconf/config.dat

SISTEME DE CONTROL

Există o serie de sisteme de control (drivers) disponibile, iar altele pot fi scrise cu puțină dificultate. Sistemele de control sunt în general de două tipuri. În primul rând, există sisteme de control reale - sisteme de control care accesează și stochează efectiv date într-un anumit tip de bază de date, care poate fi pe sistemul de fișiere local sau pe un sistem de la distanță. Apoi există meta-sisteme de control care combină alte sisteme de control pentru a forma sisteme mai interesante. Să începem cu primele.

Acest sistem de control de bază de date permite debconf să stocheze o întreagă bază de date într-un singur fișier text plat. Acest lucru facilitează arhivarea, transferul între mașini și editarea. Este unul dintre cele mai compacte formate de baze de date în ceea ce privește spațiul utilizat pe disc. Este, de asemenea, unul dintre cele mai lente.

Pe de altă parte, întregul fișier trebuie să fie citit de fiecare dată când debconf pornește, iar salvarea acestuia este, de asemenea, lentă.

Următoarele lucruri sunt configurabile pentru acest sistem de control.

Fișierul care urmează să fie utilizat ca bază de date. Acesta este un câmp obligatoriu.
Permisiunile cu care se creează fișierul dacă acesta nu există. Valoarea implicită este 600, deoarece fișierul ar putea conține parole în anumite circumstanțe.
Formatul fișierului. Consultați secțiunea FORMATE de mai jos. În mod implicit se utilizează un format asemănător formatului rfc-822.
Dacă ar trebui făcută o copie de rezervă a fișierului vechi înainte de a-l modifica. Valoarea implicită este „true”.

Ca exemplu de configurare a unei baze de date folosind acest sistem de control:


Name: mydb
Driver: File
Filename: /var/cache/debconf/mydb.dat

Acest sistem de control de bază de date permite debconf să stocheze date într-o structură ierarhică de directoare. Numele diferitelor șabloane și întrebări debconf sunt utilizate ca atare pentru a forma directoare cu fișiere în ele. Acest format pentru baza de date este cel mai ușor de navigat și de manipulat manual. Are viteze foarte bune de încărcare și salvare. De asemenea, ocupă de obicei cel mai mult spațiu, deoarece o mulțime de fișiere mici și subdirectoare ocupă spațiu suplimentar.

Următoarele lucruri sunt configurabile pentru acest sistem de control.

Directorul în care se pun fișierele. Necesar.
O extensie de adăugat la numele fișierelor. Trebuie să fie definită cu un șir nevid; valoarea implicită este „.dat”
Formatul fișierului. Consultați secțiunea FORMATE de mai jos. În mod implicit se utilizează un format asemănător formatului rfc-822.
Dacă ar trebui făcută o copie de rezervă a fișierului vechi înainte de a-l modifica. Valoarea implicită este „true”.

Ca exemplu de configurare a unei baze de date folosind acest sistem de control:


Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/mydb
Extension: .txt

Acest sistem de control de bază de date este un compromis între bazele de date „File” și „DirTree”. Acesta utilizează un director, în care există (aproximativ) un fișier pentru fiecare pachet care utilizează debconf. Acest lucru este destul de rapid, în timp ce utilizează puțin mai mult spațiu decât sistemul de control de bază de date „File”.

Acest sistem de control este configurabil în aceleași moduri ca și sistemul de control „DirTree”, plus:

Permisiunile cu care se creează fișierele. Valoarea implicită este 600, deoarece fișierele ar putea conține parole în anumite circumstanțe.

Ca exemplu de configurare a unei baze de date folosind acest sistem de control:


Name: mydb
Driver: PackageDir
Directory: /var/cache/debconf/mydb

AVERTISMENT: Acest sistem de control de bază de date este în prezent experimental. Utilizați-l cu precauție.

Acest sistem de control de bază de date accesează un director LDAP pentru datele de configurare debconf. Datorită naturii acestui mecanism, directoarele LDAP ar trebui accesate în mod normal în modul numai citire. Acest lucru se datorează faptului că pot avea loc accesări multiple și, în general, este mai bine pentru consistența datelor dacă nimeni nu încearcă să modifice datele în acest timp. Desigur, accesul în scris este acceptat pentru acele cazuri în care doriți să actualizați datele de configurare din director.

Pentru informații despre configurarea unui server LDAP pentru debconf, citiți „/usr/share/doc/debconf-doc/README.LDAP” (din pachetul „debconf-doc”).

Pentru a utiliza acest sistem de control de bază de date, trebuie să aveți instalat pachetul „libnet-ldap-perl”. debconf sugerează acest pachet, dar nu depinde de el.

Vă rugăm să analizați cu atenție implicațiile de securitate ale utilizării unei baze de date debconf la distanță. Dacă nu aveți încredere în sursă și în rețeaua care intervine, nu este un lucru foarte sigur de făcut.

Următoarele lucruri sunt configurabile pentru acest sistem de control.

Numele gazdei sau adresa IP a unui server LDAP la care să se efectueze conectarea.
Portul la care se face conectarea la serverul LDAP. Dacă nu este dat niciunul, este utilizat portul implicit.
DN-ul sub care vor fi stocate toate elementele de configurare. Se presupune că fiecare element de configurare va trăi într-un DN de tipul cn=<numele elementului>,<DN de bază>. Dacă această structură nu este respectată, toate pariurile sunt închise...
DN-ul pentru conectarea la director. Dacă nu este specificat niciunul, se va utiliza legătura anonimă.
Parola care urmează să fie utilizată într-o legătură autentificată (utilizată cu binddn, mai sus). Dacă nu este specificată, se va utiliza legătura anonimă.

Această opțiune nu ar trebui utilizată în cazul general. Legarea anonimă ar trebui să fie suficientă de cele mai multe ori pentru accesul doar la citire. Specificarea unui DN și a unei parole de conectare ar trebui rezervată pentru cazurile ocazionale în care doriți să actualizați datele de configurare debconf.
Activează accesul la intrări LDAP individuale, în loc de a le prelua pe toate odată la început. Acest lucru este foarte util dacă doriți să monitorizați jurnalele LDAP pentru anumite chei debconf solicitate. În acest fel, ați putea scrie, de asemenea, cod de manipulare personalizat pe partea serverului LDAP.

Rețineți că atunci când această opțiune este activată, conexiunea la serverul LDAP este menținută activă pe parcursul întregii execuții Debconf. Acest lucru este puțin diferit de comportamentul „toate în una” în care se fac două conexiuni scurte la LDAP; la început pentru a prelua toate intrările și la sfârșit pentru a salva eventualele modificări.

Un exemplu de strofă care configurează o bază de date utilizând acest sistem de control, presupunând că baza de date de la distanță se află pe example.com și poate fi accesată anonim:


Name: ldapdb
Driver: LDAP
Readonly: true
Server: example.com
BaseDN: cn=debconf,dc=example,dc=com
KeyByKey: 0

Un alt exemplu, de data aceasta baza de date LDAP este pe localhost și se poate scrie în ea:


Name: ldapdb
Driver: LDAP
Server: localhost
BaseDN: cn=debconf,dc=domain,dc=com
BindPasswd: secret
KeyByKey: 1

Acest sistem de control de bază de date cu scop special citește și scrie baza de date de la intrarea/ieșirea standard. Poate fi util pentru persoanele cu nevoi speciale.

Următoarele lucruri sunt configurabile pentru acest sistem de control.

Formatul pentru citire și scriere. Consultați secțiunea FORMATE de mai jos. În mod implicit se utilizează un format asemănător formatului rfc-822.
Numărul descriptorului de fișier din care se citește. Valoarea implicită este citirea de la intrarea standard. Dacă este definit la „none”, baza de date nu va citi niciun fel de date la pornire.
Numărul descriptorului de fișier în care se scrie. În mod implicit, se scrie la ieșirea standard. Dacă este definit la „none”, baza de date va fi înlăturată la închidere.

Aceștia sunt toate sistemele control reale, acum trecem la meta-sistemele de control.

Acest sistem de control stivuiește un număr de alte baze de date (de orice tip) și le permite să fie accesate ca una singură. Atunci când debconf solicită o valoare, prima bază de date din stivă care conține valoarea o returnează. Dacă debconf scrie ceva în baza de date, scrierea se face în mod normal în primul sistem de control din stivă care are elementul pe care debconf îl modifică, iar dacă nu există niciunul, noul element este adăugat la prima bază de date din stivă care poate fi scrisă.

Lucrurile devin mai interesante dacă una dintre bazele de date din stivă este numai-pentru-citire. „readonly”. Luați în considerare o stivă de baze de date foo, bar și baz, unde foo și baz sunt ambele numai-pentru-citire. Debconf dorește să schimbe un element, iar acest element este prezent doar în baz, care este numai-pentru-citire. Sistemul de control de stivă „stack” este suficient de inteligent pentru a realiza că nu va funcționa și va copia elementul din baz în bar, iar scrierea va avea loc în bar. Acum elementul din baz este umbrit de elementul din bar și nu va mai fi vizibil pentru debconf.

Acest tip de lucru este deosebit de util în cazul în care doriți să direcționați mai multe sisteme către o bază de date centrală, numai pentru citire, permițând în același timp ca anumite lucruri să fie anulate pe fiecare sistem. Atunci când se adaugă controlul accesului, stivele vă permit să faceți multe alte lucruri interesante, cum ar fi redirecționarea tuturor parolelor către o bază de date, în timp ce o bază de date aflată sub aceasta se ocupă de orice altceva.

Pentru a configura o stivă „stack” , este necesară o singură piesă de configurare:

Aici specificați o listă de alte baze de date, după nume, pentru a-i spune ce alcătuiește stiva.

De exemplu:


Name: megadb
Driver: stack
Stack: passworddb, configdb, companydb

AVERTISMENT: Sistemul de control de stivă „stack” nu este încă foarte bine testat. Utilizați-l pe propriul risc.

Backup

Acest sistem de control transmite toate cererile către un alt sistem de control de bază de date. Dar, de asemenea, copiază toate cererile de scriere către un sistem de control de bază de date de rezervă.

Trebuie să specificați următoarele câmpuri pentru a configura acest sistem de control de baze de date:

Baza de date din care se citește și în care se scrie.
Numele bazei de date către care se trimit copii ale scrierilor.

De exemplu:


Name: backup
Driver: Backup
Db: mydb
Backupdb: mybackupdb

Debug

Acest sistem de control transmite toate cererile către un alt sistem de control de bază de date, generând un rezultat de depanare detaliat cu privire la cerere și la rezultat.

Trebuie să specificați următoarele câmpuri pentru a configura acest sistem de control de baze de date:

Baza de date din care se citește și în care se scrie.

CONTROLUL ACCESULUI

Atunci când configurați o bază de date, puteți, de asemenea, să utilizați anumite câmpuri pentru a specifica controlul accesului. De exemplu, puteți specifica că o bază de date acceptă numai parole sau că o bază de date acceptă numai lucruri cu „foo” în nume.

După cum s-a menționat mai înainte, acest control de acces, dacă este stabilit la „true”, face ca o bază de date să fie de tip „readonly”, numai-pentru-citire. Debconf va citi valori din aceasta, dar nu va scrie niciodată nimic în ea.
Textul din acest câmp este o expresie regulată compatibilă perl care este comparată cu numele elementelor pe măsură ce acestea sunt solicitate din baza de date. Numai dacă numele unui element corespunde expresiei regulate, baza de date va permite debconf să îl acceseze sau să îl modifice.
La fel ca Accept-Name, cu excepția faptului că orice nume de element care corespunde acestei expresii regulate va fi respins.
O altă expresie regulată, aceasta se potrivește cu tipul elementului care este accesat. Accesul va fi permis numai dacă tipul corespunde expresiei regulate.
La fel ca Accept-Type, cu excepția faptului că orice tip care corespunde acestei expresii regulate va fi respins.

FORMATE

Unele dintre sistemele de control de baze de date utilizează module de format pentru a controla formatul real în care baza de date este stocată pe disc. Acestea sunt formatele acceptate în prezent:

822
Acesta este un format de fișier bazat în mare măsură pe formatul rfc-822 pentru antetele mesajelor de poștă electronică. Formate similare sunt folosite în cadrul Debian; în fișierul de stare (status) dpkg, și așa mai departe.

EXEMPLU

Iată un exemplu mai complicat de fișier debconf.conf.


# Această strofă este utilizată pentru configurarea
# generală a debconf.
Config: stack
Templates: templates
Log: developer
Debug: developer


# Aceasta este propria mea bază de date locală.
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/config


# Aceasta este o altă bază de date pe care o folosesc
# pentru a păstra doar configurația serverului X.
Name: X
Driver: File
Filename: /etc/X11/debconf.dat
Mode: 644
# Este cam greu să-mi dau seama ce întrebări
# aparțin lui X; ar trebui să folosească o structură
# arborescentă mai profundă, astfel încât să pot
# face potrivire doar pentru ^X/
# În fine.
Accept-Name: xserver|xfree86|xbase


# Aceasta este baza de date debconf globală,
# numai-citire (pentru mine!) a companiei noastre.
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
# Nu vreau nicio parolă care ar putea
# să se afle pe acolo.
Reject-Type: password
# Dacă această BD nu este accesibilă
# din orice motiv, continuă oricum.
Required: false


# Folosesc această bază de date
# pentru a păstra parolele în siguranță.
Name: passwords
Driver: File
Filename: /etc/debconf/passwords
Mode: 600
Accept-Type: password


# Să le punem pe toate împreună într-o bază de date.
# in a database stack.
Name: stack
Driver: Stack
Stack: passwords, X, mydb, company
# Astfel, toate parolele ajung în baza de date a parolelor.
# Cele mai multe lucruri legate de configurarea X se duc
# în baza de date X, iar orice altceva se duce în baza mea
# de date principală. Valorile sunt căutate pe rând în fiecare
# dintre acestea, iar dacă niciuna nu are o anumită valoare,
# aceasta este căutată în baza de date LDAP a întregii
# companii (cu excepția cazului în care este o parolă).


# O bază de date este, de asemenea, utilizată pentru
# a păstra șabloanele. Nu este nevoie să o facem
# la fel de sofisticată.
Name: templates
Driver: File
Mode: 644
Format: 822
Filename: /var/cache/debconf/templates

NOTE

Dacă utilizați ceva de genul ${HOME} în acest fișier, aceasta va fi înlocuită cu valoarea variabilei de mediu numită.

Variabilele de mediu pot fi de asemenea utilizate pentru a suprascrie bazele de date din mers, a se vedea debconf(7)

Numele câmpurilor (partea de linie înainte de două puncte) nu sunt sensibile la majuscule. Valorile, însă, sunt sensibile la majuscule.

ÎMBUNĂTĂȚIRI PLANIFICATE

Mai multe sisteme de control și formate. Unele idei includ: un sistem de control „SQL”, cu capacitatea de a accesa o bază de date la distanță. Un sistem de control „DHCP,” care pune la dispoziție unele lucruri speciale, cum ar fi numele de gazdă, adresa IP și serverele DNS. Un sistem de control care extrage valori din câmpurile TXT ale înregistrărilor DNS publice. Un format care este compatibil cu rezultatul cdebconf. Un sistem de control de suprascriere, care poate suprascrie câmpul de valori sau fanioanele tuturor cererilor care trec prin el.

FIȘIERE

/etc/debconf.conf

~/.debconfrc

CONSULTAȚI ȘI

debconf(7)

AUTOR

Joey Hess <joeyh@debian.org>

TRADUERE

Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2024

Dacă găsiți o greșeală în traducere, vă rugăm să o raportați autorului acestei traduceri, pe lista de discuții <debian-l10n-romanian@lists.debian.org> sau trimițând un raport de eroare contra pachetului „debconf” către sistemul de urmărire al erorilor din Debian (BTS).