Samba3 + LDAP no ArchLinux

Olá pessoal, em meu primeiro artigo gostaria de demonstrar como foi minha trajetória em instalar e configurar o Samba3 autenticando com LDAP no ArchLinux.

[ Hits: 40.313 ]

Por: Wellington Oliveira de Andrade em 08/10/2008


Migrando dados LDAP + Samba



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.

Página anterior    

Páginas do artigo
   1. Instalando e configurando o Samba
   2. Configurando pacman.conf / compilando pacotes no ArchLinux
   3. Instalando pacotes necessários para LDAP com Samba
   4. Configurando / testando LDAP
   5. Migrando dados LDAP + Samba
Outros artigos deste autor

Wpad.dat com Proxy Específico por Rede

Leitura recomendada

Impressora virtual no Samba para gerar arquivos PDF

Samba no Arch Linux (para principiantes)

Servidor Samba como PDC

Sobre WINS (Windows Internet Name Service)

Configurando o Samba no Red Hat

  
Comentários
[1] Comentário enviado por maran em 08/10/2008 - 16:32h

Um bom artigo, so acho que poderia ter explorado um pouco m,ais o lado teorico, pois veja.
Eu uso e abuso do Samba, e a versão nova esta muito boa, porem, imagina este case:

Você expressou sua experiencia, porem um artigo também é mostrar como fazer, e não dar a massa do bolo pronta, pois quem não conhece ficaria perdido, eu não implementaria em meu servidor algo, sem saber a base e o principal, porque??

...

MAis voltando, teve partes muito bem explicadas ;)
LDAP é o que há!
Um abraço,

[2] Comentário enviado por wellington79 em 02/02/2010 - 11:35h

Faltou so uma coisa antes de utilizar o comando:
net getlocalsid

deve-se utilizar o comando
smbpasswd -w "senhadoldap"



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts