Ubuntu 10.04 OpenLDAP NFS QUOTA

Pergunta-se: Como LDAP e NFS podem juntos permitir que uma pessoa, ao digitar seu login e sua senha em qualquer computador conectado à rede, possa ter acesso a sua conta particular que fica armazenada remotamente em um computador central?

A resposta é simples: o NFS permite o compartilhamento de arquivos, enquanto o LDAP fica responsável pela autenticação de usuários.

[ Hits: 57.423 ]

Por: Anderson Francisco da Silva em 07/05/2011


LDAP Scripts



Duas bem conhecidas ferramentas que auxiliam no gerenciamento gráfico do servidor LDAP são a "phpldapadmin" e a "webmin". Em nosso caso, utilizaremos apenas a ferramenta "ldapscripts" que apesar de funcionar unicamente em modo texto, nos oferece todos os recursos necessários.

A ferramenta "ldapscripts" é um conjunto de scripts que permite o gerenciamento de contas POSIX em um diretório LDAP. Para instalá-la basta o pacote 'ldapscripts" e suas dependências. Para verificar os comandos disponíveis escreva "ldap" e pressione TAB. O arquivo de configuração do "ldapscripts" é "/etc/ldapscripts/ldapscripts.conf", enquanto o arquivo de log é "/var/log/ldapscripts.log".

# ldap
ldapadd ldapdelete ldapmodify ldappasswd ldapurl ldapcompareldapexop ldapmodrdn ldapsearch ldapwhoami ...

# ldap
ldapadd ldapdelete ldapmodify ldappasswd ldapurl
ldapcompareldapexop ldapmodrdn ldapsearch ldapwhoami ...

# apt-get install ldapscripts

# ldap
ldapadd ldapdeleteuserfromgroup ldapmodrdn
ldapaddgroup ldapexop ldappasswd
ldapaddmachine ldapfinger ldaprenamegroup
ldapadduser ldapgid ldaprenamemachine
ldapaddusertogroup ldapid ldaprenameuser
ldapcompare ldapinit ldapsearch
ldapdelete ldapmodify ldapsetpasswd
ldapdeletegroup ldapmodifygroup ldapsetprimarygroup
ldapdeletemachine ldapmodifymachine ldapurl
ldapdeleteuser ldapmodifyuser ldapwhoami

Para configurar o "ldapscripts" altere o arquivo "/etc/ldapscripts/ldapscrits.conf". Caso o comando "ldapadduser" fique "hanging" (não termina!) tente substituir "/dev/random" por "/dev/urandom" na linha do gerador de senhas aleatórias. As permissões "700" indicam que ninguém além do próprio usuário está autorizado a acessar sua pasta "home". Caso prefira deixar o parâmetro BINDPWD comentado, escreva a senha no arquivo "ldapscrits.passwd", cuja permissão sugerida é 600.

...
SERVER="ldap://192.168.0.2"
BINDDN="cn=admin,dc=example,dc=com"
...
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
...
BINDPWD="secret"
...
SUFFIX="dc=example,dc=com" # Global suffix
GSUFFIX="ou=Groups" # Groups ou (just under $SUFFIX)
USUFFIX="ou=Users" # Users ou (just under $SUFFIX)
MSUFFIX="ou=Machines" # Machines ou (just under $SUFFIX)
...
UHOMES="/home/users/%u" # You may use %u for username here
CREATEHOMES="yes" # Create home directories and set rights ?
HOMESKEL="/etc/skel" # Directory where the skeleton files are located. Ignored if undefined or nonexistant.
HOMEPERMS="700" # Default permissions for home directories
...
PASSWORDGEN="cat /dev/urandom | LC_ALL=C tr -dc 'a-zA-Z0-9' | head -c8"
...

Para adicionar um novo grupo ao LDAP, utilize o comando "ldapaddgroup", e caso seja necessário removê-lo, utilize o comando "ldapdeletegroup". Adicione o grupo "aluno" ao LDAP, certificando que o gid está correto. Para adicionar um novo usuário utilize "ldapadduser", que permite escolha de "uid", no caso igual a 5000. Note que a pasta "/home/users/anderson" foi criada automaticamente. Para alterar a senha do usuário utilize "ldapsetpasswd".

# ldapaddgroup aluno 10000
Successfully added group aluno to LDAP
...

# ldapdeletegroup aluno
Successfully deleted group cn=aluno,ou=Groups,dc=example,dc=com from LDAP
...

# ldapadduser anderson aluno 5000
Successfully added user anderson to LDAP
Successfully set password for user anderson
Successfully created home directory for user anderson
...

# ldapsetpasswd anderson
Changing password for user uid=anderson,ou=Users,dc=example,dc=com
New Password:
Retype New Password:
Successfully set password for user uid=anderson,ou=Users,dc=example,dc=com
...
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação do Ubuntu e NFS no Servidor e Cliente
   3. LDAP no Servidor
   4. LDAP - Esquemas, Senhas e Base de Dados
   5. LDAP - Raiz, Administrador, Grupos, Usuários e Máquinas
   6. LDAP Scripts
   7. LDAP no Cliente
   10. Quota de Usuário
   11. Conclusão e Bibliografia
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Agendando tarefas em Linux/Unix usando o cron

Instalação dos servidores web Apache e Thttpd no Debian Linux

Drivers de impressão para clientes com Windows 7/XP

Instalado Fedora-DS e integrando com Samba

Caracteres especiais no teclado Linux: como adaptar às necessidades do escritor

  
Comentários
[1] Comentário enviado por ricardoolonca em 12/05/2011 - 11:32h

Parabéns pelo artigo. Muito bem detalhado. Só não está perfeito porque faltam as páginas 8 e 9 rsrsrsr.

[2] Comentário enviado por roberto06 em 02/08/2011 - 16:21h

Excelente artigo. Eu só queria saber como faço para não logar com o mesmo usuário em máquinas diferentes. Pq aqui, com qualquer usuario, eu consigo logar com ele em varias maquinas ao mesmo tempo.

[3] Comentário enviado por anderson.pocos em 02/08/2011 - 16:32h

olá Roberto, obrigado pelo comentário! Temo que talvez você esteja pensando na contramão! A ideia é que se um computador zuar, o usuário possa ir para a máquina do lado. No mais qual é o problema de uma pessoa usar a máquina da outra se o que verá é sempre o próprio desktop? Estamos usando essa solução aqui a 6 meses e já estamos com 700 usuários e uns 130 computadores... emocionante véi...!!!

[4] Comentário enviado por roberto06 em 03/08/2011 - 15:40h

Anderson, acho que não entendeu minha pergunta. Exemplo: Eu logo com o usuario aluno na máquina 1. Depois sem encerrar a sessão, eu consigo logar com o mesmo usuário aluno na maquina 2 ao mesmo tempo. só queria que isso não fosse possível,. Mas no resto, isso tá perfeito. Valeu cara!!!

[5] Comentário enviado por anderson.pocos em 03/08/2011 - 15:54h

olá Roberto, sua tem ideia tem fundamento sim... bloquear dois logins da mesma pessoa, né? entendi! aqui ainda não tentamos bloquear isso não mas obrigado pela dica!

[6] Comentário enviado por roberto06 em 03/08/2011 - 15:57h

valeu cara, vo contiuar caçando aki na net como eu posso fazer isso. obrigado

[7] Comentário enviado por roberto06 em 12/09/2011 - 10:22h

gostaria de saber, como faz o backup de tudo ...

[8] Comentário enviado por anderson.pocos em 12/09/2011 - 10:56h

### BACKUP ###
root@dell:/# /etc/init.d/slapd stop
root@dell:/# ldapsearch -x -D cn=admin,dc=example,dc=com -w SENHAADMINLDAP -b dc=example, dc=com -LLL > backup-2011-09-12.ldif
root@dell:/# /etc/init.d/slapd start

### RESTORE ###
root@dell:/# /etc/init.d/slapd stop
root@dell:/# slapadd -l backup-2011-09-12.ldif
root@dell:/# slapindex -v
root@dell:/# chown openldap: /var/lib/ldap/*
root@dell:/# /etc/init.d/slapd start

"_ eu posso invocar espíritos!"
"_ mas eles virão se você os chamar?"

[9] Comentário enviado por roberto06 em 12/09/2011 - 11:51h

Valeu andersooon! tu é fera!!!

[10] Comentário enviado por roberto06 em 15/09/2011 - 09:37h

Mas está dando o seguinte erro!!! Can't contact LDAP server (-1)


[11] Comentário enviado por anderson.pocos em 16/09/2011 - 21:42h

e aí... já conseguiu conectar?

[12] Comentário enviado por roberto06 em 20/09/2011 - 09:19h

ainda não cara!!! da erro

[13] Comentário enviado por Paulo Oliveira em 22/09/2011 - 12:49h

Roberto06,

Algumas observações muito importantes:

Para o comando ldapsearch a base deverá estar funcionando, já para o ldapcat é desaconselhável.
1º - tente startar a base (/etc/init.d/slapd start) e depois execute (ldapsearch -x -D cn=admin,dc=example,dc=com -w SENHAADMINLDAP -b dc=example, dc=com -LLL > backup-2011-09-12.ldif)
2º Caso o erro ainda persista, verifique os parâmetros da sua base no comando ldapsearch.

[14] Comentário enviado por fetc em 17/12/2011 - 15:08h

Cara, parabéns, muito bem e explicativo o artigo, só um problema, gerei a senha em MD% com o slapdpasswd, porém quando vou verificar a senha com o ldapsearch e a digito, aparece ldap_bind: Invalid credentials (49), tentei com a senha secret e o seu MD5 e também não deu, sabe o que pode ser amigo?
Obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts