[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Samba nao loga no LDAP



Leandro.

Se isso foi perguntado na lista, favor responder para a lista.

Leandro Moreira escreveu:
Edmundo,
Criei um usuário para mim( Leandro) no LDAP

OK. Como você fez isso?

e fui ate a maquina do samba, tentar cria-lo novamente olha a resposta q obtive:

spyder:/home/leandro# smbldap-useradd leandro
/usr/sbin/smbldap-useradd: user leandro exists

Ou seja o LDAP parece esta replicando pro samba u m usário criado no LDAP.

smbldap-qualquercoisa são scripts em Perl que acessam a base do LDAP diretamente, isso não passa pelo samba e não mexe na base de autenticação local (arquivos passwd). Se você criou um usuário no LDAP anteriormente, agora você tentou criar ele novamente no mesmo lugar (NO OUTRO SERVIDOR).

Quanto a replicação: LDAP é um serviço de diretórios (considere isso uma base de dados em forma de árvore genérica). E o samba é um serviço de resolução de nomes netbios e compartilhamento de arquivos e impressoras. Normalmente o samba utiliza arquivos .tdb para guardar INFORMAÇÕES ADICIONAIS de usuários, arquivos passwd guardam atributos posix somente, o samba precisa DESTAS E algumas outras informações (neste caso elas ficam em arquivos .tdb). Você está definindo que o samba use os usuários disponíveis em seu LDAP e esqueça que usuários locais existem, agora no seu LDAP você tem contas extendidas com atributos POSIX e SAMBA e isso está sendo utilizado diretamente em seu local de origem (o outro servidor). Resumindo, desligue o seu servidor LDAP e seu Samba perde a noção dos usuários, ou seja, ISSO NÃO É REPLICAÇÃO.

Servidores LDAP replicam sim dados em configurações master/slave, mas não é isso que está sendo discutido aqui.

Quanto ao PAM e ao NSS por acaso vc nao teria um exemplo deconfiguração pra eu ter uma ideia pois configurei tanto no servre LDAP quanto no SAMBA as seguintes entradas:

###pam_ldap.conf (servidor samba)###
host 192.168.1.20
base dc=lucianomoreira,dc=no-ip,dc=org
uri ldap://192.168.1.20/
ldap_version 3
port 389
pam_password crypt

### libnss-ldap.conf (Servidor Samba) ###
host 192.168.1.20
base dc=lucianomoreira,dc=no-ip,dc=org


OK

###pam_ldap.conf (servidor LDAP)###
host 192.168.1.20
base dc=lucianomoreira,dc=no-ip,dc=org
uri ldap://192.168.1.20/
ldap_version 3
port 389
pam_password crypt

### libnss-ldap.conf (Servidor LDAP) ###
host 192.168.1.20
base dc=lucianomoreira,dc=no-ip,dc=org


host neste caso pode ser 127.0.0.1, aqui você está acessando a base localmente.

Os arquivos são praticamente auto-explicativos, eu configuro também a opção bindrootdn para poder alterar a base com o usuário root (no próprio arquivo explica onde deve ser colocada a senha de acesso).

Eu ja procurei na net conmo configuara esses 2 caras mas nao encontrei nada que funcionasse, caso vc tenha um modelo, link ou artigo que possa me indicar fico agradecido, como no log do samna ele da um erro de (No such object) e como nesses dois arquivos tem entradas de objetos acredito que pode ser essa a solução do meu problema.

Pra mim eles parecem estar corretamente configurados, mas parece que você não entendeu o que é responsável por oque e onde isso fica. E aliás a melhor documentação para isso é a própria documentação do Samba, o Samba by Example tem praticamente todo tipo de configuração.

Neles você configuram COMO os pacotes libpam-ldap e libnss-ldap irão acessar o LDAP, mas não é lá que você configura o PAM e NSS para utilizar estes pacotes.

Em /etc/nsswitch.conf você define a sequencia de pesquisa do NSS, você deve dizer ao NSS que ele deve pesquisar no LDAP (ou seja, realmente utilizar aquela configuração). Em /etc/pam.d/common-qqcoisa você define o empilhamento dos módulos utilizados para autenticação, você deve dizer ao PAM que ele deve utilizar o LDAP (ou seja, realmente utilizar aquela configuração) e em que ordem.

A configuração correta do PAM é um saco de fazer debug, digamos que se você logou no shell com um usuário que só existe no LDAP, ela está funcionando. O NSS se testa verificando a saída do comando "getent" conforme dito anteriormente no outro e-mail.

Digamos que deste ponto em diante teríamos shells utilizáveis nos dois servidores (se o LDAP foi inicializado de maneira correta e alguns usuários criados NO LDAP) acessando a mesma base de autenticação.



Edmundo Valle Neto escreveu:
Leandro Moreira escreveu:
Felipe,
Esse erro acontece com ou sem usuários/maquinas cadastrados no samba o log do samba so me da esse retorno. Mas se eu crio um usuário no servidor LDAP e vou na maquina do samba logar com esse usuário (o mesmo nao existe no sistema somente no LDAP) eu logo normalmente, o LDAP ta replicando a base dele pro servidor mas pelo que pude entender nao sei se estou correto o que parece e que pelo log:

Ok. Até aqui indica que "provavelmente" pelo menos sua configuração do PAM e NSS estejam acessando o LDAP da outra máquina. (isso te permite usar um shell) Não sei se você entendeu como a coisa funciona, mas se o LDAP está em outro servidor, ele não replica para lugar nenhum, o teu servidor (que tem o samba) faz a consulta lá através do PAM (configurado para autenticar no LDAP) assim como o NSS resolve os nomes a partir de lá também. E veja bem, até agora não estamos falando de Samba, ele não é necessário para que pelo menos isso aconteça.


[2006/11/11 23:47:47, 0] passdb/pdb_ldap.c:ldapsam_search_one_group(1971) ldapsam_search_one_group: Problem during the LDAP search: LDAP error: (No such object)
de

O samba nao ta conseguindo contactar o LDAP, nao sei se serve de alguma ajuda mas to postando o meu smb.conf tb se algume tiver alguma ideia do que ta rolando. Parece que o passdb nao consegue encaminhar as requizições pro LDAP.

# Global parameters
[global]
       workgroup = SPYDER
       netbios name = spd
       security = user
       server string = Servidor Samba
       obey pam restrictions = Yes
       passdb backend = ldapsam:ldap://192.168.1.20
       enable privileges = No
       encrypt passwords = yes
       syslog = 0
       log file = /var/log/samba/log.%m
       max log size = 1000
       logon script = %U.bat
       #logon script = chamada.bat
       logon path = \\%L\profiles\%U
       logon home = L:
       domain logons = Yes
       preferred master = Yes
       domain master = Yes
       dns proxy = No
       ldap admin dn = cn=admin,dc=lucianomoreira,dc=no-ip,dc=org
       ldap suffix = dc=lucianomoreira,dc=no-ip,dc=org
       ldap group suffix = ou=grupos
       ldap machine suffix = ou=maquinas

Não lembro de cabeça como o NSS acha os grupos, se a configuração dos sufixos é necessária ou não nos arquivos dele. Mas já que você está usando sufixos em português:

1. Como você populou o LDAP? O padrão "smbldap-populate" não cria estes sufixos, foi manualmente? Pessoalmente, se não estou fazendo uma migração não gosto de usar o pacote migration-tools. Digamos que popular o LDAP é igual a preparar Neston, mas eu prefiro utilizar o smbldap-populate se a base for criada do zero.

2. Os comandos "getent passwd" e "getent group" mostram os usuários e grupos criados no LDAP incluídos na lista?



       ldap passwd sync = Yes
       ldap ssl = no
       ldap user suffix = ou=usuarios
       panic action = /usr/share/samba/panic-action %d
       invalid users = root
#       admin users = leandro, luciano
#        hosts allow = 192.168.1.
       log level = 0
       os level = 66
   admin users = admin
add machine script = useradd -g domainmaq -c "Maquina de Dominio" -s /bin/false -d /dev/null %u

Novamente, existe um pacote chamado smbldap-tools que facilita todo o trabalho de população da base e criação e manipulação de contas. Esta linha deveria ser algo como: /usr/sbin/smbldap-useradd -w "%u" Você está utilizando os scripts fornecidos pelo pacote smbldap-tools? Se não, como você está criando os usuários com os atributos do samba, via Web?

  [homes]
       comment = Diretorio Pessoal
       create mask = 0664
       directory mask = 0700
       browseable = No
       writeable = yes
       force user = %U
       public = no

[netlogon]
       comment = Diretorio de Scripts de Logon
       path = /etc/samba/netlogon
       write list = leandro, luciano
       read only = No
       force user = %U
       browseable = No
       map acl inherit = Yes
#      inherit acl = Yes
#        inherit permissions = Yes

[profiles]
       comment = Perfil de Sistemas do Usuário
       path = /home/profiles
       public = no
       writable = yes
       browseable = no
       force user = %U
       printable = no
       create mask = 0777
       create mode = 0770

[publico]
       comment = Area publica
       path = /home/publico
       read only = No
       create mask = 0775
       directory mask = 0775
       writable = yes
   public = yes
       browseable = yes
       force user = %U
#        inherit permissions = yes
#        map acl inherit = Yes




Atenciosamente.

Edmundo Valle Neto




Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 10/11/2006 / Vers�o: 4.4.00/4893
Proteja o seu e-mail Terra: http://mail.terra.com.br/



Atenciosamente.

Edmundo Valle Neto



Reply to: