Instalando um servidor Samba autenticando em um servidor OpenLDAP

Leonardo Serra Maciel de Campos


            
          

Este documento é licenciado sobre a licença de Atribuição-Compartilhamento da Creative Commons. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-sa/2.0/ ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Histórico de Revisões
Revisão 0.5 2004-09-01 12:10:05 -0300 Leonardo Serra Maciel de Campos
Revisão 0.6 2004-09-08 10:35:42 -0300 Leonardo Serra Maciel de Campos
Revisão 0.7 2004-09-09 12:02:55 -0300 Leonardo Serra Maciel de Campos
Revisão 0.8 2004-09-13 11:42:12 -0300 Leonardo Serra Maciel de Campos
Revisão 0.9 2004-09-15 12:00:43 -0300 Leonardo Serra Maciel de Campos
Revisão 1.0 2004-11-19 12:24:03 -0300 Leonardo Serra Maciel de Campos
Revisão 1.1 2004-11-22 10:44:00 -0300 Leonardo Serra Maciel de Campos
Revisão 1.2 2004-12-02 17:04:09 -0300 Leonardo Serra Maciel de Campos
Revisão 1.3 2004-12-07 10:33:25 -0300 Leonardo Serra Maciel de Campos
Revisão 1.4 2004-12-14 14:27:09 -0300 Leonardo Serra Maciel de Campos
Revisão 1.5 2005-06-17 00:48:21 -0300 Leonardo Serra Maciel de Campos

Resumo

Este documento visa ensinar como configurar o Samba de maneira integrada OpenLDAP.


Índice

1. Introdução
1.1. O que é Samba?
1.2. O que é LDAP?
1.3. O que é OpenLDAP?
2. Ambiente
3. Instalação
4. Configuração
5. Comandos úteis
A. Arquivos de exemplo
1. /etc/ldap/slapd.conf
Bibliografia
Glossário

1. Introdução

1.1. O que é Samba?

O Samba é um conjunto de logiciais que forneça serviços de compartilhamento de arquivos e impressão com clientes SMB/CIFS. O Samba está livremente disponível, ao contrário de outras implementações de SMB/CIFS, e permite a interoperabilidade entre usuários de Linux/Unix e clientes baseados em Microsoft Windows.

1.2. O que é LDAP?

LDAP significa Lightweight Directory Access Protocol, ou seja, Protocolo de Leve Acesso a Diretórios. Como o nome sugere, é um protocolo leve para acessar serviços de diretório. O LDAP roda em cima do protocolo TCP/IP ou outras conexões de transferência de serviços.

1.3. O que é OpenLDAP?

O OpenLDAP é um esforço colaborativo da comunidade Open Source para desenvolver um sistema de aplicações LDAP. O fundador por este projeto é o americano Kurt Zeilenga. Hoje existem vários desenvolvedores engajados neste sistema que está se tornando um padrão universal.

2. Ambiente

Será presumido que o seu sistema Debian GNU/Linux e o aptitude estão corretamente configurados. Também estaremos acreditando que o servidor OpenLDAP está instalado, configurado e sendo executado da maneira correta. Também é importante que a máquina onde ficará o servidor Samba esteja realizando autenticação no servidor OpenLDAP.

Atenção

Todos os comandos deverão ser executados pelo usuário root!

A tabelo abaixo mostra as versões de cada logicial usado.

Tabela 1. Versão dos logiciais

Logicial Versão
Debian GNU/Linux Sarge
OpenLDAP (slapd) 2.1.30-3
Samba 3.0.8-2
smbldap-tools 0.8.5-1

A tabelo abaixo mostra as principais caracteristicas do ambiente onde foi feito esta documentação.

Tabela 2. Ambiente

Nome do servidor Samba servidor
Nome do domínio/grupo de trabalho exemplo.com.br
Ip do servidor Samba 192.168.0.1
Mascara de rede 255.255.255.0
Endereço do servidor OpenLDAP ldap.exemplo.com.br
Sufixo da base do servidor OpenLDAP dc=exemplo,dc=com,dc=br
Usuário administrador do servidor OpenLDAP cn=admin,dc=exemplo,dc=com,dc=br
Senha do usuário administrador do servidor OpenLDAP asdf

Nota

Usaremos palavras desta maneira para indicar substituição.

3. Instalação

  1. Execute o seguinte:

    # aptitude install samba samba-common samba-doc smbclient smbfs smbldap-tools

    Será instalado o pacote Debian para o Samba e ferramentas relacionadas. O DebConf ira fazer algumas perguntas, responda de acordo com a tabela abaixo.

    Tabela 3. DebConf

    Pacote Questão Resposta
    samba Workgroup/Domain Name? exemplo.com.br
    samba Use password encryption? Yes
    samba Modify smb.conf to use WINS settings from DHCP? No
    samba How do you want to run Samba? daemons
    samba Create samba password database, /var/lib/samba/passdb.tdb? No

4. Configuração

  1. Edite o arquivo /etc/samba/smb.conf. O arquivo deverá estar idêntico ao exemplo abaixo, exceto quando estiver indicado.

    # Global parameters
    [global]
    
      # Do something sensible when Samba crashes: mail the admin a backtrace
      panic action = /usr/share/samba/panic-action %d
      workgroup = exemplo.com.br
      netbios name = servidor
      server string = Servidor Samba
      security = user
      passdb backend = ldapsam:ldap://ldap.exemplo.com.br:389
      encrypt passwords = yes
      ldap passwd sync = yes
    
      guest account = guest
    
      ldap admin dn = cn=admin,dc=exemplo,dc=com,dc=br
      ldap suffix = dc=exemplo,dc=com,dc=br
      ldap ssl = no
      ldap user suffix = ou=People
      ldap group suffix = ou=Group
      ldap machine suffix = ou=Computer
      ldap idmap suffix = ou=Idmap
      ldap delete dn = yes
    
      add user script = /usr/sbin/smbldap-useradd -m "%u"
      add machine script = /usr/sbin/smbldap-useradd -w "%u"
      add group script = /usr/sbin/smbldap-groupadd -p "%g"
      add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
      delete user script = /usr/sbin/smbldap-userdel "%u"
      delete group script = /usr/sbin/smbldap-groupdel "%g"
      delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
      set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
    
      log level = 3 passdb:5 auth:2
      log file = /var/log/samba/log.%m
      max log size = 200
      syslog = 0
      time server = yes
      socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
      load printers = no
      os level = 64
      preferred master = yes
      local master = yes
      domain master = yes
      domain logons = yes
    
      wins support = yes
      dns proxy = yes
      hosts allow = 192.168.0.0/255.255.255.0 127.0.0.0/255.0.0.0
    
    [homes]
      comment = Pasta dos usuários
      read only = no
      browseable = no
      hide dot files = yes
      valid users = %S
      create mask = 0600
      directory mask = 0700
    
    [profiles]
      comment = Serviço de perfil
      path = /etc/samba/profiles/
      profile acls = yes
      read only = no
      create mask = 0600
      directory mask = 0700
    
    [netlogon]
      comment = Serviço de logon
      path = /etc/samba/netlogon/
      browseable = no
      read only = yes
      share modes = no
      locking = no
    

    Nota

    Você pode validar o arquivo /etc/samba/smb.conf através da execução do comando testparm

  2. É necessario criar duas pastas.

    • Execute o seguinte comando para criar a pasta onde ficaram os scripts de logon:

      # mkdir /etc/samba/netlogon
    • Execute o seguinte comando para criar a pasta onde ficaram os perfis dos usuários:

      # mkdir /etc/samba/profiles
    • Execute o seguinte comando garantir que os usuários apenas poderão acrescentar novas pastas dentro da pasta /etc/samba/profiles:

      # chmod 1777 /etc/samba/profiles
  3. É necessário criar um arquivo chamado usuario.bat dentro da pasta /etc/samba/netlogon para cada usuário que for utilizar o samba. Este arquivo deverá ter a seguinte estrutura:

    echo @off
    NET TIME \\servidor /SET /YES
    NET USE U: /HOME /YES
    

    Nota

    Não esqueça de que este arquivo deverá ter suas quebras de linha no formado do Windows.

  4. É necessário informar ao Samba qual é a senha do usuário cn=admin,dc=exemplo,dc=com,dc=br usado no servidor OpenLDAP. Para isto execute:

    # smbpasswd -w asdf
    Setting stored password for "cn=admin,dc=exemplo,dc=com,dc=br" in secrets.tdb
    
  5. É necessário copiar os arquivos de exemplo de configuração do smbldap-tools e alterar a permissão de um dos arquivos. Para isto execute os passos abaixo.

    • Copie o arquivo smbldap_bind.conf para a pasta /etc/smbldap-tools/. Para isto execute:

      # cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/
    • Para que apenas o root possa executar operações no servidor OpenLDAP como "cn=admin,dc=exemplo,dc=com,dc=br", utilizando as ferramentas do smbldap-tools é necessário alterar a permissão do arquivo /etc/smbldap-tools/smbldap_bind.conf. Para isto execute:

      # chmod 600 /etc/smbldap-tools/smbldap_bind.conf
    • Descompacte o arquivo smbldap.conf.gz para a pasta /etc/smbldap-tools/. Para isto execute:

      # gunzip -c /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
  6. Edite o arquivo /etc/smbldap-tools/smbldap.conf para configurar os parâmetros do smbldap-tools.

    O parametro $SID deverá ser igual ao retorno da execução de:

    # net getlocalsid
    SID for domain dc=exemplo,dc=com,dc=br is: S-1-5-21-2794849875-3655903006-2346813305
    

    Tabela 4. Parâmetros do arquivo /etc/smbldap-tools/smbldap.conf

    Parametro Valor Explicação
    SID S-1-5-21-2794849875-3655903006-2346813305  
    slaveLDAP "ldap.exemplo.com.br"  
    masterLDAP "ldap.exemplo.com.br"  
    ldapTLS "0" Não ira usar TLS.
    suffix "dc=exemplo,dc=com,dc=br" Sufixo da base no servidor OpenLDAP
    usersdn "ou=People,${suffix}"  
    computersdn "ou=Computer,${suffix}"  
    groupsdn "ou=Group,${suffix}"  
    sambaUnixIdPooldn "cn=NextFreeUnixId,ou=System,${suffix}"  
    hash_encrypt "CRYPT"  
    userLoginShell "/bin/bash" Shell padrão para os usuários criados.
    userHome "/home/%U" Localização da pasta pessoal dos usuários criados.
    defaultUserGid 10000 Grupo padrão para os usuários criados.
    defaultComputerGid 10000 Grupo padrão para os computadores criados.
    userSmbHome "\\servidor\homes" Endereço do compartilhamento onde fica a pasta pessoal dos usuários.
    userProfile "\\servidor\profiles\%U" Endereço do compartilhamento onde fica o perfil dos usuários.
    userHomeDrive "U:" Unidade onde a pasta pessoal do usuário será mapeada.
    mailDomain "exemplo.com.br" Domínio para os endereços de correio eletrônico pessoal do usuário.
  7. Edite o arquivo /etc/smbldap-tools/smbldap_bind.conf para configurar os parâmetros do smbldap-tools.

    Tabela 5. Parâmetros do arquivo /etc/smbldap-tools/smbldap_bind.conf

    Parametro Valor
    slaveDN "cn=admin,dc=exemplo,dc=com,dc=br"
    slavePw "asdf"
    masterDN "cn=admin,dc=exemplo,dc=com,dc=br"
    masterPw "asdf"
  8. As etapas abaixo devem ser executadas na máquina ldap.exemplo.com.br.

    • Edite o arquivo /etc/ldap/slapd.conf. Estaremos editanto este arquivo para ensinar ao servidor OpenLDAP a "sambar".

      • É necessário incluir o schema do Samba ao servidor OpenLDAP, para isto acrescente abaixo dos includes ja existentes as seguintes linhas:

        # Schema for Samba
        include         /etc/ldap/schema/samba.schema
        
      • É necessário informar ao servidor OpenLDAP quais atributos do Samba deverão ser indexados, para isto acrescente abaixo dos index ja existentes as seguintes linhas:

        # Index for Samba
        index sambaSID              eq
        index sambaPrimaryGroupSID  eq
        index sambaDomainName       eq
        
      • É necessário informar ao servidor OpenLDAP uma diretriz de acesso para que os usuários possam alterar sua senha do Samba. Para isto abaixo das linhas:

        access to attribute=userPassword,shadowMax,shadowExpire
                by dn="cn=admin,dc=exemplo,dc=com,dc=br" write
                by anonymous auth
                by self write
                by * none
        

        Acrescente as linhas:

        # The Samba passwords emtries by default can be changed 
        # by the entry owning it if they are authenticated. 
        # Others should not be able to see it, except the admin entry below
        access to attribute=sambaLmPassword,sambaNtPassword,sambaPwdLastSet,sambaPwdMustChange,sambaPwdCanChange,sambaPasswordHistory
                by dn="cn=admin,dc=exemplo,dc=com,dc=br" write
                by anonymous auth
                by self write
                by * none
        

        Atenção

        Não altere a ordem das diretrizes de acesso, pois poderá acarretar em problemas de segurança.

    • Descompacte o arquivo de schema do Samba para a pasta /etc/ldap/schema/. Para isto execute:

      # gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
    • Precisamos reiniciar e reindexar o OpenLDAP, para isto execute os passos abaixo.

      • Para parar o servidor OpenLDAP execute:

        # invoke-rc.d slapd stop
      • Para reindexar a base do servidor OpenLDAP execute:

        # slapindex
      • Para iniciar o servidor OpenLDAP execute:

        # invoke-rc.d slapd start
  9. É necessário fazer alguns acréscimos manuais a base do servidor OpenLDAP. Para isto siga os passos abaixo.

    • É necessário criar quatro objetos do tipo organizationalUnit dentro da base do servidor OpenLDAP, onde serão guardados respectivamente os nomes de domínios, informações dos computadores, entradas Idmap (usado pelo Samba para servir membros de domínio) e informações do sistema. Para isto crie um arquivo com o seguinte conteúdo e salve ele com o nome de organizationalUnit.ldif.

      dn: ou=Domain,dc=exemplo,dc=com,dc=br
      objectClass: top
      objectClass: organizationalUnit
      ou: Domain
      
      dn: ou=Computer,dc=exemplo,dc=com,dc=br
      objectClass: top
      objectClass: organizationalUnit
      ou: Computer
      
      dn: ou=Idmap,dc=exemplo,dc=com,dc=br
      objectClass: top
      objectClass: organizationalUnit
      ou: Idmap
      
      dn: ou=System,dc=exemplo,dc=com,dc=br
      objectClass: top
      objectClass: organizationalUnit
      ou: System
      

      Execute o seguinte comando para adicionar o conteudo do arquivo organizationalUnit.ldif a base do servidor OpenLDAP:

      # ldapadd -x -h ldap.exemplo.com.br -D "cn=admin,dc=exemplo,dc=com,dc=br" -f organizationalUnit.ldif -W
    • É necessário criar um objeto do tipo sambaDomain dentro da base do servidor OpenLDAP, onde será guardado o nome do domínio. Para isto crie um arquivo com o seguinte conteúdo e salve ele com o nome de sambaDomainName.ldif.

      dn: sambaDomainName=exemplo.com.br,ou=Domain,dc=exemplo,dc=com,dc=br
      objectClass: sambaDomain
      sambaDomainName: exemplo.com.br
      sambaSID: S-1-5-21-2794849875-3655903006-2346813305
      sambaAlgorithmicRidBase: 1000
      

      Execute o seguinte comando para adicionar o conteúdo do arquivo sambaDomainName.ldif a base do servidor OpenLDAP:

      # ldapadd -x -h ldap.exemplo.com.br -D "cn=admin,dc=exemplo,dc=com,dc=br" -f sambaDomainName.ldif -W
    • É necessário criar um objeto do tipo sambaUnixIdPool dentro da base do servidor OpenLDAP, onde serão guardados o próximo uidNumber e gidNumber disponiveis. Para isto crie um arquivo com o seguinte conteúdo e salve ele com o nome de NextFreeUnixId.ldif.

      dn: cn=NextFreeUnixId,ou=System,dc=exemplo,dc=com,dc=br
      objectClass: inetOrgPerson
      objectClass: sambaUnixIdPool
      uidNumber: 10000
      gidNumber: 10000
      cn: NextFreeUnixId
      sn: NextFreeUnixId
      

      Execute o seguinte comando para adicionar o conteúdo do arquivo NextFreeUnixId.ldif a base do servidor OpenLDAP:

      # ldapadd -x -h ldap.exemplo.com.br -D "cn=admin,dc=exemplo,dc=com,dc=br" -f NextFreeUnixId.ldif -W
    • É necessário criar tres objetos do tipo posixGroup dentro da base do servidor OpenLDAP que são grupos basicos para o Samba. Para isto crie um arquivo com o seguinte conteúdo e salve ele com o nome de posixGroup.ldif.

      dn:cn=Domain Admins,ou=Group,dc=exemplo,dc=com,dc=br
      objectClass: posixGroup
      objectClass: sambaGroupMapping
      gidNumber: 512
      cn: Domain Admins
      description: Netbios Domain Administrators
      sambaSID: S-1-5-21-2794849875-3655903006-2346813305-512
      sambaGroupType: 2
      displayName: Domain Admins
      memberUid: administrator
      
      dn:cn=Domain Users,ou=Group,dc=exemplo,dc=com,dc=br
      objectClass: posixGroup
      objectClass: sambaGroupMapping
      gidNumber: 513
      cn: Domain Users
      description: Netbios Domain Users
      sambaSID: S-1-5-21-2794849875-3655903006-2346813305-513
      sambaGroupType: 2
      displayName: Domain Users
      
      dn:cn=Domain Guests,ou=Group,dc=exemplo,dc=com,dc=br
      objectClass: posixGroup
      objectClass: sambaGroupMapping
      gidNumber: 514
      cn: Domain Guests
      description: Netbios Domain Guests Users
      sambaSID: S-1-5-21-2794849875-3655903006-2346813305-514
      sambaGroupType: 2
      displayName: Domain Guests
      

      Execute o seguinte comando para adicionar o conteúdo do arquivo posixGroup.ldif a base do servidor OpenLDAP:

      # ldapadd -x -h ldap.exemplo.com.br -D "cn=admin,dc=exemplo,dc=com,dc=br" -f posixGroup.ldif -W
    • É necessário criar dois usuários basicos para o Samba, para isto execute

      É necessário criar dois objeto do tipo posixAccount dentro da base do servidor OpenLDAP que são usuários basicos para o Samba. Para isto crie um arquivo com o seguinte conteúdo e salve ele com o nome de posixAccount.ldif.

      dn:uid=administrator,ou=People,dc=exemplo,dc=com,dc=br
      cn: administrator
      sn: administrator
      objectClass: inetOrgPerson
      objectClass: sambaSAMAccount
      objectClass: posixAccount
      objectClass: shadowAccount
      gidNumber: 512
      uid: administrator
      uidNumber: 0
      sambaLogonTime: 0
      sambaLogoffTime: 2147483647
      sambaKickoffTime: 2147483647
      sambaPwdCanChange: 0
      sambaHomeDrive: U:
      sambaProfilePath: \\servidor\profiles\administrator
      sambaPrimaryGroupSID: S-1-5-21-2794849875-3655903006-2346813305-512
      sambaSID: S-1-5-21-2794849875-3655903006-2346813305-2996
      loginShell: /bin/false
      gecos: Netbios Domain Administrator
      sambaLMPassword: AA25262EEF0F6C9A93E28745B8BF4BA6
      sambaAcctFlags: [U]
      sambaNTPassword: E5537633F2135796F7276F4555185E12
      sambaPwdLastSet: 1101929376
      sambaPwdMustChange: 1110482976
      userPassword: {CRYPT}wTUucIFdXDeB2
      homeDirectory: /home
      sambaHomePath: \\servidor\homes\administrator
      
      dn:uid=guest,ou=People,dc=exemplo,dc=com,dc=br
      cn: guest
      sn: guest
      objectClass: inetOrgPerson
      objectClass: sambaSAMAccount
      objectClass: posixAccount
      objectClass: shadowAccount
      gidNumber: 514
      uid: guest
      uidNumber: 999
      homeDirectory: /dev/null
      sambaPwdLastSet: 0
      sambaLogonTime: 0
      sambaLogoffTime: 2147483647
      sambaKickoffTime: 2147483647
      sambaPwdCanChange: 0
      sambaPwdMustChange: 2147483647
      sambaHomePath: \\servidor\homes\guest
      sambaHomeDrive: U:
      sambaProfilePath: \\servidor\profiles\guest
      sambaPrimaryGroupSID: S-1-5-21-2794849875-3655903006-2346813305-514
      sambaLMPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX
      sambaNTPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX
      sambaAcctFlags: [NU         ]
      sambaSID: S-1-5-21-2794849875-3655903006-2346813305-2998
      loginShell: /bin/false
      

      Execute o seguinte comando para adicionar o conteúdo do arquivo posixAccount.ldif a base do servidor OpenLDAP:

      # ldapadd -x -h ldap.exemplo.com.br -D "cn=admin,dc=exemplo,dc=com,dc=br" -f posixAccount.ldif -W
  10. Precisamos reiniciar o Samba, para isto execute:

    # invoke-rc.d samba restart

5. Comandos úteis

  • Para reiniciar o Samba execute:

    # invoke-rc.d samba restart
  • Para criar usuário execute:

    # smbldap-useradd -c "Nome completo" -a usuario

    Nota

    Pode ser passado o parametro -m para que a pasta pessoal do usuário seja criada.

  • Para apagar usuário execute:

    # smbldap-userdel usuario

    Nota

    Pode ser passado o parametro -r para que a pasta pessoal do usuário seja apagada.

  • Para alterar a senha do usuário execute:

    # smbldap-passwd usuario
  • Para validar o arquivo /etc/samba/smb.conf:

    # testparm

A. Arquivos de exemplo

1. /etc/ldap/slapd.conf

# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.

#######################################################################
# Global Directives:

# Features to permit
#allow bind_v2

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema

# Schema for Samba
include         /etc/ldap/schema/samba.schema

# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck     on

# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile         /var/run/slapd/slapd.pid

# List of arguments that were passed to the server
argsfile        /var/run/slapd.args

# Read slapd.conf(5) for possible values
loglevel        0

# Search base
defaultsearchbase  dc=exemplo,dc=com,dc=br

# Where the dynamically loaded modules are stored
modulepath	/usr/lib/ldap
moduleload	back_bdb

#######################################################################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend		bdb

#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend		<other>

#######################################################################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database        bdb
cachesize       5000
checkpoint      1 60    
mode            0600

# The base of your directory in database #1
suffix          "dc=exemplo,dc=com,dc=br"

# Where the database file are physically stored for database #1
directory       "/var/lib/ldap"

# Indexing options for database #1
index objectClass eq
index default               sub
index cn                    sub,pres,eq
index sn                    sub,pres,eq
index uid                   sub,pres,eq
index displayName           sub,pres,eq

index uidNumber             pres,eq
index gidNumber             pres,eq
index memberUid             pres,eq

# Index for Samba
index sambaSID              eq
index sambaPrimaryGroupSID  eq
index sambaDomainName       eq

# Save the time that the entry gets modified, for database #1
lastmod         on

# Where to store the replica logs for database #1
# replogfile	/var/lib/ldap/replog

# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attribute=userPassword,shadowMax,shadowExpire
        by dn="cn=admin,dc=exemplo,dc=com,dc=br" write
        by anonymous auth
        by self write
        by * none

# The Samba passwords emtries by default can be changed 
# by the entry owning it if they are authenticated. 
# Others should not be able to see it, except the admin entry below
access to attribute=sambaLmPassword,sambaNtPassword,sambaPwdLastSet,sambaPwdMustChange,sambaPwdCanChange,sambaPasswordHistory
        by dn="cn=admin,dc=exemplo,dc=com,dc=br" write
        by anonymous auth
        by self write
        by * none

# Ensure read access to the base for things like
# supportedSASLMechanisms.  Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work 
# happily.
access to dn.base="" by * read

# The admin dn has full write access, everyone else
# can read everything.
access to *
        by dn="cn=admin,dc=exemplo,dc=com,dc=br" write
        by * read

# For Netscape Roaming support, each user gets a roaming
# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
#        by dn="cn=admin,dc=laboratorio" write
#        by dnattr=owner write

#######################################################################
# Specific Directives for database #2, of type 'other' (can be bdb too):
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database        <other>

# The base of your directory for database #2
#suffix		"dc=debian,dc=org"
      

Bibliografia

Os seguintes sítios foram usados como base para a criação desta documentação

The Official Samba-3 HOWTO and Reference Guide. http://us3.samba.org/samba/docs/man/Samba-HOWTO-Collection/.

SAMBA (v 2.2) PDC LDAP v.3 howto. http://www.unav.es/cti/ldap-smb/ldap-smb-2_2-howto.html.

Configurazione Samba 3 con supporto LDAP su Debian Woody. http://www.slag.it/documenti/samba3_ldap_pdc/samba3_ldap_pdc_howto_0.1.0.php.

Glossário

Debian GNU/Linux

O Debian é um sistema operacional (SO) livre para seu computador. Um sistema operacional é um conjunto de programas básicos e utilitários que fazem seu computador funcionar. O Debian usa o kernel (núcleo de um sistema operacional), Linux, mas a maior parte das ferramentas do SO vêm do projeto GNU; daí o nome GNU/Linux.

Logicial

Conjunto de instruções lógicas. Na informática designa um conjunto de instruções lógicas e suas dependências, também conhecido como programa ou sistema de computador.

Esta palavra é pouco usada no Brasil, onde se usa muito a expressão "Software".

Origem: Wikipédia, a enciclopédia livre.

Samba

O samba é um ritmo brasileiro, nascido nos morros do Rio de Janeiro, entre os negros ex-escravos e seus descendentes. O primeiro samba gravado, Pelo telefone, de Donga, foi gravado no ano de 1917. Consta que é uma composição coletiva.

Origem: Wikipédia, a enciclopédia livre.