Existe alguma coisa ruim acontecendo se eu alterar /etc/ldap/slapd.d/cn=config.ldif manualmente?

2

Desde o 2.3, o OpenLDAP usa um mecanismo de configuração chamado slapd-config. Eles disseram que usá-lo fazer toda a configuração LDAP pode ser alterada em tempo real.

Este é o cabeçalho do /etc/ldap/slapd.d/cn=config.ldif:

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.

Eu mudei dados nele e alguns outros arquivos que têm esse cabeçalho, depois de reiniciar o slapd, minhas alterações tiveram efeitos.

Há mais alguma coisa acontecendo se eu alterar esses arquivos manualmente? Se eu não precisar de 'change on fly', devo editar esse arquivo manualmente em vez de usar o ldapmodify? Qual aplicativo gerou esses arquivos e quando?

NOTA: Estou usando o openldap-2.4.28 no Ubuntu 12.04

    
por HVNSweeting 16.04.2013 / 17:05

2 respostas

9

Se você alterar manualmente os arquivos LDIF em cn = config, seu conteúdo e checksums não serão compatíveis, o que não é fatal, mas é irritante ao usar ferramentas como slapcat .

Modificar cn = config da maneira apropriada com ldapmodify é muito doloroso, e você acabará acumulando toneladas de arquivos LDIF cuidadosamente feitos à mão, descartáveis e de propósito único. Comparado a apenas editar o slapd.conf é um pesadelo. Independentemente disso, se você precisar fazer alterações na configuração de tempo de execução, ldapmodify é sua única opção. No entanto, se você puder pagar algum tempo de inatividade, você tem dois outros venenos para escolher.

Primeiro, há o método altamente não suportado , mas rápido e sujo, que funciona bem para a configuração inicial do OpenLDAP, se você souber o que está fazendo:

$ service slapd stop
$ cp -a /etc/ldap/slapd.d /etc/ldap/slapd.d.old
<edit the LDIF files in /etC/ldap/slapd.d>
$ service slapd start

Se o slapd for iniciado, ele deve funcionar bem, mas é sempre bom seguir / var / log / syslog ao iniciar o serviço:

$ tail -n 0 -f /var/log/syslog|grep slapd

Você pode corrigir os erros de soma de verificação usando slapcat e slapadd conforme descrito abaixo.

Segundo, há um método menos não suportado que envolve o uso de slapcat e slapadd (modificado de estas instruções ):

$ slapcat -n0 -F /etc/ldap/slapd.d > config.ldif
<edit config.ldif>
$ mkdir /etc/ldap/slapd.d.new
$ slapadd -n0 -F /etc/ldap/slapd.d.new -l config.ldif

Se o slapadd for bem-sucedido sem erros, você poderá migrar para o diretório slapd.d modificado. De acordo com este tópico slapadd adiciona apenas dados, então sobrescrevendo o conteúdo original do diretório slapd.d não é possível. Portanto, precisamos mover os diretórios em torno de um pouco:

$ service slapd stop
$ mv /etc/ldap/slapd.d /etc/ldap/slapd.d.old
$ mv /etc/ldap/slapd.d.new /etc/ldap/slapd.d
$ chown -R openldap:openldap /etc/ldap/slapd.d
$ service slapd start

Esses dois métodos mais ou menos não suportados tornam a convivência com cn = config um pouco mais suportável.

    
por 27.06.2013 / 10:49
0

Quando você vê um arquivo que diz

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.

você faria bem em seguir as instruções de como alterar corretamente o conteúdo desse arquivo .

Nesse caso, isso significa atualizar a configuração do OpenLDAP usando o comando ldapmodify de acordo com o manual do OpenLDAP.
Isso permite aplicar alterações na configuração do OpenLDAP em tempo real e regenerará o arquivo slapd.conf (usado ao iniciar o servidor LDAP como uma configuração de inicialização)

Em geral, a falha em seguir as instruções (como "NÃO EDITAR ESTE ARQUIVO PORQUE É GERADO AUTOMATICAMENTE!") levará a dor e sofrimento.

Neste caso em particular, você pode descobrir que suas alterações no arquivo foram eliminadas da próxima vez que alguém fizer as coisas do jeito certo, e você terá que reconstruir sua configuração (provavelmente sem registro dele, já que o arquivo que você editado será substituído).
A próxima vez que você não atender a um aviso como esse, poderá tornar o sistema não inicializável ou pior.

    
por 16.04.2013 / 17:39