NOME
debconf.conf - ficheiro de configuração de debconfDESCRIÇÃO
Debconf é um sistema de configuração para pacotes Debian. /etc/debconf.conf e ~/.debconfrc são ficheiros de configuração que o debconf usa para determinar quais bases de dados deve usar. Estas bases de dados para armazenar dois tipos de informação; dados de configuração dinâmicos que o utilizador insere, e dados de template estáticos. O debconf oferece um backend de base de dados extensível e flexível. Podem ser criadas novas drivers com um esforço mínimo, e conjuntos de drivers podem ser combinados de várias maneiras.SINOPSE
# Este é um exemplo de ficheiro de configuração que é
# suficiente para usar 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
FORMATO DE FICHEIRO
O formato deste ficheiro é uma série de estrofes, cada uma separada por pelo menos uma linha completamente vazia. As linhas de comentários começadas com um caractere "#" são ignoradas. A primeira estrofe do ficheiro é especial, é usada para configurar o debconf como uma entidade completa. São necessários dois campos nesta primeira estrofe:- Config
- Especifica o nome da base de dados de onde carregar dados de configuração.
- Templates
- Especifica o nome da base de dados a usar para a cache de template.
- Frontend
- O frontend que o Debconf deverá usar, sobrepondo qualquer definição de frontend na base de dados do debconf.
- Priority
- A prioridade que o Debconf deve usar, sobrepondo-se a qualquer prioridade definida na base de dados debconf.
- Admin-Email
- O endereço de email para onde o debconf deve enviar mail se precisar de certificar que o administrador viu uma mensagem importante. A predefinição é "root", mas pode ser definido para qualquer endereço de email válido para enviar o mail para lá. Se preferir que o debconf nunca lhe mande nenhum mail, especifique um endereço vazio. Isto pode ser sobreposto na hora com a variável de ambiente DEBCONF_ADMIN_EMAIL.
- Debug
- Se definido, isto fará o debconf enviar informação de depuração para o erro standard. O valor que é definido pode ser algo como "user", "developer", "db", ou uma expressão regular. Tipicamente, em vez de o definir permanentemente num ficheiro de configuração, você vai apenas querer ligar a depuração temporariamente, e a variável de ambiente DEBCONF_DEBUG pode ser definida para conseguir isso.
- NoWarnings
- Se definido,isto fará com que o debconf não mostre avisos sobre várias coisas. Isto pode ser sobreposto na hora com a variável de ambiente DEBCONF_NOWARNINGS.
- Log
- Faz o debconf registar informação de depuração no syslog, quando é executado. O valor é definido para controlar o que é registado. Veja Debug, em cima, para uma explicação dos valores que podem ser definidos para controlar o que é registado.
- Terse
- Se definido para "true", faz com que alguns frontends do debconf usem um modo de mostrador conciso especial que mostra o mínimo possível. A predefinição é 'false'. O modo conciso pode ser definido temporariamente através da variável de ambiente DEBCONF_TERSE.
Config: configdb
Templates: templatedb Cada estrofe que permanece no ficheiro define uma base de dados. Uma estrofe de base de dados começa por dar o nome à base de dados:
Name: configdb Depois indica que driver de base de dados deve ser usada para esta base de dados. Veja DRIVERS em baixo, para informação acerca de quais drivers estão disponíveis.
Driver: Ficheiro Você pode indicar que a base de dados não é essencial ao funcionamento apropriado do debconf dizendo que não é requerida. Isto fará com que o debconf se atrapalhe se a base de dados falhe por alguma razão.
Required: false Você pode marcar qualquer base de dados como 'só-leitura' e o debconf não irá escrever nada nela.
Readonly: true Você também pode limitar que tipos de dados podem ir para a base de dados com linhas Accept- e Reject-; veja CONTROLES DE ACESSO em baixo. O restante de cada estrofe de base de dados é usado para disponibilizar configuração específica para essa driver. Por exemplo, a driver Text precisa de saber um directório onde colocar a base de dados, para que você possa dizer:
Filename: /var/cache/debconf/config.dat
DRIVERS
Estão disponíveis um número de drivers, e podem ser escritas mais com pouca dificuldade. As drivers vêm em dois tipos gerais. Primeiro existem as drivers verdadeiras -- drivers que realmente acedem e armazenam dados nalgum tipo de base de dados, que pode estar num sistema de ficheiros local, ou num sistema remoto. Depois existem as meta-drivers que combinam outras drivers juntamente para formar sistemas mais interessantes. Vamos começar pelas primeiras.- File
Esta driver de base de dados permite ao
debconf armazenar uma base de dados inteira num único ficheiro de texto
simples. Isto torna mais fácil arquivar, transferir entre
máquinas, e editar. É um dos formatos de base de dados mais
compactado em termos de espaço de disco usado. É também
um dos mais lentos.
No aspecto negativo, o ficheiro completo tem de ser lido de cada vez que o
debconf arranca, e guardá-lo é também lento.
As seguintes coisas são configuráveis para esta driver.
Um exemplo de estrofe que define uma base de dados usando esta driver:
Name: mydb
Driver: File
Filename: /var/cache/debconf/mydb.dat
- Filename
- O ficheiro a ser usado como base de dados. Este é um campo necessário.
- Mode
- As permissões para criar um ficheiro se este ainda não existir. A predefinição é 600, porque o ficheiro pode conter palavras-passe em algumas circunstâncias.
- Format
- O formato do ficheiro. Veja FORMATOS em baixo. A predefinição é usar um formato tipo rfc-822.
- Backup
- Se deve ser feita uma cópia de segurança (backup) do ficheiro antigo antes de o alterar. A predefinição é 'true'.
Name: mydb
Driver: File
Filename: /var/cache/debconf/mydb.dat
- DirTree
Esta driver de base de dados permite ao
debconf armazenar dados numa estrutura de directórios
hierárquicos. Os nomes dos vários templates de debconf e
questões são usados como são para formar
directórios como ficheiros neles. Este formato para a base de dados
é o mais fácil de navegar e passear manualmente. Tem bons tempos
de carga e gravação. Tipicamente também é o que
ocupa mais espaço, porque muitos ficheiro pequenos e
sub-directórios ocupam algum espaço adicional.
As seguintes coisas são configuráveis para esta driver.
Um exemplo de estrofe que define uma base de dados usando esta driver:
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/mydb
Extension: .txt
- Directory
- O directório onde colocar os ficheiros. Necessário.
- Extension
- Uma extensão a adicionar aos nomes dos ficheiros. Tem que estar definida para uma string não vazia; a predefinição é ".dat"
- Format
- O formato do ficheiro. Veja FORMATOS em baixo. A predefinição é usar um formato tipo rfc-822.
- Backup
- Se deve ser feita uma cópia de segurança (backup) do ficheiro antigo antes de o alterar. A predefinição é 'true'.
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/mydb
Extension: .txt
- PackageDir
Esta driver de base de dados é um
compromisso entre as bases de dados File e DirTree. Usa um directório,
onde existe um ficheiro (aproximadamente) por cada pacote que usa debconf.
Isto é bastante rápido, enquanto usa um pouco mais de
espaço que a driver de bases de dados File.
Esta driver é configurada do mesmo modo que a driver DirTree, mais:
Name: mydb
Driver: PackageDir
Directory: /var/cache/debconf/mydb
- Mode
- As permissões com as quais criar ficheiros. A predefinição é 600, porque os ficheiros podem conter palavras-passe em algumas circunstâncias.
Name: mydb
Driver: PackageDir
Directory: /var/cache/debconf/mydb
- LDAP
AVISO: Esta driver de base de dados é
actualmente experimental. Use-a com cuidado.
Esta driver de base de dados acede a uma directório LDAP para dados de
configuração de debconf. Devido à natureza da besta, os
directórios LDAP devem tipicamente ser acedidos em modo de
apenas-leitura. Isto é porque podem ocorrer múltiplos acessos, e
é geralmente melhor para a consistência dos dados se
ninguém tentar modificá-los quando isto está a acontecer.
Claro que o acesso de escrita é suportado para aqueles casos em que
você quer actualizar os dados de configuração no
directório.
Para informação sobre configurar um servidor LDAP para o debconf,
leia /usr/share/doc/debconf-doc/README.LDAP (do pacote debconf-doc).
Para usar esta driver de base de dados, você precisa de ter o pacote
libnet-ldap-perl instalado. O debconf sugere esse pacote, mas não
depende dele.
Por favor considere cuidadosamente as implicações de
segurança de usar uma base de dados debconf remota. A menos que confie
na fonte, e tenha confiança na rede interveniente, não é
algo muito seguro de se fazer.
As seguintes coisas são configuráveis para esta driver.
Um exemplo de estrofe que define uma base de dados usando esta driver, assumindo
que a base de dados remota está em example.com e pode ser acedida em
anonimato:
Name: ldapdb
Driver: LDAP
Readonly: true
Server: example.com
BaseDN: cn=debconf,dc=example,dc=com
KeyByKey: 0 Outro exemplo, desta vez a base de dados LDAP está em localhost, e pode ser escrita:
Name: ldapdb
Driver: LDAP
Server: localhost
BaseDN: cn=debconf,dc=domain,dc=com
BindPasswd: secret
KeyByKey: 1
- server
- O nome de máquina ou endereço IP de um servidor LDAP para se ligar.
- port
- O porto por onde ligar ao servidor LDAP. Se nenhum for fornecido, é usado o porto predefinido.
- basedn
- O DN sob o qual todos os itens de configuração serão armazenados. A cada item de configuração será assumido que vive numa DN de cn=<item name>,<Base DN>. Se esta estrutura não for seguida, todas as apostas estão fora.
- binddn
- O DN para unir ao directório como. Será usada união anónima se nenhum for especificado.
- bindpasswd
- A palavra-passe a usar numa união autenticada (usada com o binddn, em cima). Se não for especificada, será usada união anónima.
Esta opção não deve ser
usada nos casos gerais. A união anónima deve ser suficiente na
maioria das vezes para acesso em modo só-leitura. Especificar uma
união DN e palavra-passe deve ser reservado para casos ocasionais onde
deseja actualizar os dados de configuração do debconf.
- keybykey
- Activa acesso a entradas LDAP individuais, em vez de obter-las todas de uma vez no inicio. Isto é muito útil se desejar monitorizar os seus logs do LDAP por pedidos de chaves debconf específicas. Deste modo, você também pode escrever código de manipulação personalizado na parte do servidor LDAP.
Note que quando esta opção
está activa, a ligação ao servidor LDAP é mantida
activa durante toda a execução do Debconf. Isto e um pouco
diferente do comportamento todo-em-um onde duas ligações breves
são feitas ao LDAP; no início para obter todas as entradas, e no
fim para guardar eventuais alterações.
Name: ldapdb
Driver: LDAP
Readonly: true
Server: example.com
BaseDN: cn=debconf,dc=example,dc=com
KeyByKey: 0 Outro exemplo, desta vez a base de dados LDAP está em localhost, e pode ser escrita:
Name: ldapdb
Driver: LDAP
Server: localhost
BaseDN: cn=debconf,dc=domain,dc=com
BindPasswd: secret
KeyByKey: 1
- Pipe
Esta driver de base de dados de objectivos
especiais lê e escreve na base de dados a partir da
entrada/saída standard. Pode ser útil para pessoas com
necessidades especiais.
As seguintes coisas são configuráveis para esta driver.
E é tudo sobre as drivers reais, agora vamos para as meta-drivers...
- Format
- O formato para ler e escrever. Veja FORMATOS em baixo. A predefinição é usar um formato tipo rfc-822.
- Infd
- O número de descritor de ficheiro de onde ler. A predefinição é stdin, Se definido para "none", a base de dados não irá ler nenhuns dados no arranque.
- Outfd
- O número de descritor de ficheiro para onde escrever. A predefinição é stdout, Se definido para "none", a base de dados será deitada fora ao desligar.
- Stack
Esta driver empilha um número de outras
bases de dados (de qualquer tipo), e permite que sejam acedidas como uma
só. Quando o debconf pede um valor, a primeira base de dados na pilha
que contém o valor devolve-o. Se o debconf escrever algo na base de
dados, a escrita vai normalmente para a primeira driver na pilha que possui o
item que o debconf está a modificar, e se nenhuma o tiver, o novo item
é adicionado na primeira base de dados da pilha onde se pode escrever.
As coisas tornam-se mais interessantes se uma das bases de dados da pilha for de
só-leitura. Considere uma pilha das bases de dados foo, bar e baz onde
foo e baz são ambas só-leitura. O debconf quer alterar um item,
e este item está presente apenas em baz, a qual é
só-leitura. A driver stack é suficientemente inteligente para
perceber que isso não vai funcionar, e irá copiar o item de baz
para bar, e a escrita irá ter lugar em bar. Agora o item em baz
está colocado na sombra pelo item em bar, e não irá mais
ser visível ao debconf.
Este tipo de coisa é particularmente útil se você desejar
apontar muitos sistemas a uma base de dados central de só-leitura, e ao
mesmo tempo permitir que coisas possam ser ultrapassadas em cada sistema.
Quando são adicionados controles de acesso à
situação, as pilhas permitem-lhe fazer mais coisas
interessantes, como redireccionar todas as palavras-passe para uma base de
dados enquanto que a base de dados inferior lida com tudo o resto.
Apenas é necessário um pedaço de configuração
para configurar um stack:
Por exemplo:
Name: megadb
Driver: stack
Stack: passworddb, configdb, companydb AVISO: A driver stack ainda não foi bem testada. Use sob sua responsabilidade.
Backup
- Stack
- Aqui é onde você especifica uma lista de outras bases de dados, pelo nome, para lhe dizer o que compõe a stack.
Name: megadb
Driver: stack
Stack: passworddb, configdb, companydb AVISO: A driver stack ainda não foi bem testada. Use sob sua responsabilidade.
Esta driver passa todos os pedidos para outra
driver de base de dados. Mas também copia todos os pedidos de escrita
para uma driver de base de dados de salvaguarda.
Você tem de especificar os seguintes campos para configurar esta driver:
Por exemplo:
Name: backup
Driver: Backup
Db: mydb
Backupdb: mybackupdb
Debug
- Db
- A base de dados de onde ler e onde escrever.
- Backupdb
- O nome da base da dados para enviar cópias das escritas.
Name: backup
Driver: Backup
Db: mydb
Backupdb: mybackupdb
Esta driver passa todos os pedidos para outra
driver de base de dados, gerando saídas de depuração
detalhadas acerca dos pedidos e resultados.
Você tem de especificar os seguintes campos para configurar esta driver:
- Db
- A base de dados de onde ler e onde escrever.
CONTROLOS DE ACESSO
Quando você configura uma base de dados, também pode usar alguns campos para especificar controlos de acesso. Você pode especificar que uma base de dados apenas aceita palavras-passe, por exemplo, ou fazer uma base de dados apenas aceitar coisas com "foo" nos seus nomes.- Readonly
- Como já dito antes, este controlo de acesso, se definido para "true", torna uma base de dados em só-leitura. O debconf irá ler valores dela, mas nunca irá escrever nada lá.
- Accept-Name
- O texto neste campo é uma expressão regular compatível com perl que é comparada com os nomes dos itens quando eles são pedidos da base de dados. Apenas se um nome de item corresponder à expressão regular, é que a base de dados permite ao debconf aceder-lhe ou modificá-la.
- Reject-Name
- Tal como Accept-Name, excepto que qualquer nome de item que corresponda a esta expressão regular será rejeitado.
- Accept-Type
- Outra expressão regular, esta corresponde contra o tipo de item que está a ser acedido. Apenas se o tipo corresponder ao regex é que o acesso será concedido.
- Reject-Type
- Tal como Accept-Type, excepto que qualquer tipo que corresponda a esta expressão regular será rejeitado.
FORMATOS
Algumas das drivers de bases de dados usam módulos de formato para controlar o formato actual no qual a base de dados está armazenada no disco. São actualmente suportados estes formatos:- 822
- Este é um formato de ficheiro livremente baseado no formato rfc-822 para cabeçalhos de mensagens de email. São usados formatos semelhantes em Debian, no ficheiro de estado do dpkg, e muito mais.
EXEMPLO
Aqui está um exemplo mais complicado de um ficheiro debconf.conf.# Esta estrofe é usada para configuração debconf geral.
Config: stack
Templates: templates
Log: developer
Debug: developer
# Esta é a minha base de dados local.
Name: mydb
Driver: DirTree
Directory: /var/cache/debconf/config
# Isto é outra base de dados que eu uso para manter
# apenas a configuração do servidor X.
Name: X
Driver: File
Filename: /etc/X11/debconf.dat
Mode: 644
# É difícil separar quais as questões pertencem
# ao X; deveria usar uma estrutura de árvore mais funda
# para que pudesse apenas coincidir com ^X/
# Ora bem.
Accept-Name: xserver|xfree86|xbase
# Esta é a base de dados debconf global da companhia,
# apenas para leitura (para mim!).
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
# Não quero nenhumas palavras-passe que possam
# andar a flutuar por aí.
Reject-Type: password
# Se esta base de dados não estiver acessível por qualquer
# motivo, continuar de qualquer maneira.
Required: false
# Eu uso esta base de dados para manter as
# palavras-passe em segurança.
Name: passwords
Driver: File
Filename: /etc/debconf/passwords
Mode: 600
Accept-Type: password
# Vamos juntá-los todos
# numa pilha de base de dados.
Name: stack
Driver: Stack
Stack: passwords, X, mydb, company
# Portanto, todas as palavras-passe vão para a base de dados
# das palavras-passe.
# A maioria das configurações do X vão para a base de dados
# do X, e tudo o resto vai para a minha base de dados
# principal. Os valores são trancados em cada um deles
# na sua vez, e se nenhum tiver um valor particular, é
# trancado na base de dados LDAP geral da companhia
# (a menos que seja uma palavra-passe).
# Uma base de dados também é usada para manter templates.
# Nós não precisamos fazer isto tão imaginativo.
Name: templates
Driver: File
Mode: 644
Format: 822
Filename: /var/cache/debconf/templates