Vamos alterar o código fonte do
openldap-migrate_tools para informar o que representa em nossa árvore grupos/usuários:
a - Backup do arquivo original:
# cp /usr/share/openldap/migrate/migrate-common.pl /usr/share/openlda/migrate/migrate-common.pl.original
b - Edite o arquivo utilizando qualquer editor (vi, vim, gedit etc):
# /usr/share/openldap/migrate/migrate-common.pl
Altere as seguintes linhas:
De:
if ($NETINFOBRIDGE) {
$NAMINGCONTEXT{'aliases'} = "cn=aliases";
$NAMINGCONTEXT{'fstab'} = "cn=mounts";
$NAMINGCONTEXT{'passwd'} = "cn=users";
$NAMINGCONTEXT{'netgroup_byuser'} = "cn=netgroup.byuser";
$NAMINGCONTEXT{'netgroup_byhost'} = "cn=netgroup.byhost";
$NAMINGCONTEXT{'group'} = "cn=groups";
$NAMINGCONTEXT{'netgroup'} = "cn=netgroup";
$NAMINGCONTEXT{'hosts'} = "cn=machines";
$NAMINGCONTEXT{'networks'} = "cn=networks";
$NAMINGCONTEXT{'protocols'} = "cn=protocols";
$NAMINGCONTEXT{'rpc'} = "cn=rpcs";
$NAMINGCONTEXT{'services'} = "cn=services";
} else {
$NAMINGCONTEXT{'aliases'} = "ou=Aliases";
$NAMINGCONTEXT{'fstab'} = "ou=Mounts";
$NAMINGCONTEXT{'passwd'} = "ou=People";
$NAMINGCONTEXT{'netgroup_byuser'} = "nisMapName=netgroup.byuser";
$NAMINGCONTEXT{'netgroup_byhost'} = "nisMapName=netgroup.byhost";
$NAMINGCONTEXT{'group'} = "ou=Group";
$NAMINGCONTEXT{'netgroup'} = "ou=Netgroup";
$NAMINGCONTEXT{'hosts'} = "ou=Hosts";
$NAMINGCONTEXT{'networks'} = "ou=Networks";
$NAMINGCONTEXT{'protocols'} = "ou=Protocols";
$NAMINGCONTEXT{'rpc'} = "ou=Rpc";
$NAMINGCONTEXT{'services'} = "ou=Services";
}
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "padl.com";
# Default base
$DEFAULT_BASE = "dc=padl,dc=com";
Para:
if ($NETINFOBRIDGE) {
$NAMINGCONTEXT{'aliases'} = "cn=aliases";
$NAMINGCONTEXT{'fstab'} = "cn=mounts";
$NAMINGCONTEXT{'passwd'} = "cn=usuarios";
$NAMINGCONTEXT{'netgroup_byuser'} = "cn=netgroup.byuser";
$NAMINGCONTEXT{'netgroup_byhost'} = "cn=netgroup.byhost";
$NAMINGCONTEXT{'group'} = "cn=grupos";
$NAMINGCONTEXT{'netgroup'} = "cn=netgroup";
$NAMINGCONTEXT{'hosts'} = "cn=computadores";
$NAMINGCONTEXT{'networks'} = "cn=networks";
$NAMINGCONTEXT{'protocols'} = "cn=protocols";
$NAMINGCONTEXT{'rpc'} = "cn=rpcs";
$NAMINGCONTEXT{'services'} = "cn=services";
} else {
$NAMINGCONTEXT{'aliases'} = "ou=Aliases";
$NAMINGCONTEXT{'fstab'} = "ou=Mounts";
$NAMINGCONTEXT{'passwd'} = "ou=usuarios";
$NAMINGCONTEXT{'netgroup_byuser'} = "nisMapName=netgroup.byuser";
$NAMINGCONTEXT{'netgroup_byhost'} = "nisMapName=netgroup.byhost";
$NAMINGCONTEXT{'group'} = "ou=Grupos";
$NAMINGCONTEXT{'netgroup'} = "ou=Netgroup";
$NAMINGCONTEXT{'hosts'} = "ou=Hosts";
$NAMINGCONTEXT{'networks'} = "ou=Networks";
$NAMINGCONTEXT{'protocols'} = "ou=Protocols";
$NAMINGCONTEXT{'rpc'} = "ou=Rpc";
$NAMINGCONTEXT{'services'} = "ou=Services";
}
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "viva.edu.br";
# Default base
$DEFAULT_BASE = "dc=viva,dc=edu,dc=br";
Salve o arquivo e vamos agora gerar os ldif(s), que serão importados pelo ldap.
Para gerar o arquivo ldif e importar os Grupos utilizaremos os seguintes comandos:
# ./migrate_group.pl /etc/group grupos.ldif (Gerar o arquivo ldif)
# ldapadd -x -D cn=administrador,dc=viva,dc=edu,dc=br -W -f ./grupos.ldif (Adiciona ao ldap todos os grupos contidos em grupos.ldif)
Para gerar o arquivo ldif e importar os usuários utilizaremos os seguintes comandos:
# ./migrate_passwd.pl /etc/passwd ./usuarios.ldif (Gera o arquivo ldif)
# ldapadd -x -D cn=administrador,dc=viva,dc=edu,dc=br -W -f ./usuarios.ldif (Adiciona ao ldap todos os usuários contidos em usuarios.ldif)
Vamos gerar o usuário para o Samba com o comando:
# smbpasswd -W senha (digite a mesma senha que utilizou anteriormente)
Em seguida esse comando populará seu ldap, criando também o domínio do Samba e populando com os grupos necessários:
# smbldap-populate
Se algo sair errado, revise todos os passos e principalmente os lugares com dc=viva,dc=edu,dc=br.
Pronto, está funcionando...
Até o próximo.