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: 58.153 ]

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


Instalação do Ubuntu e NFS no Servidor e Cliente



Instalação do Ubuntu

Durante a instalação definiu-se o usuário "ti" (passível de se tornar "root") e que possui uid=1000, já seu grupo "ti" com gid=1000 foi criado automaticamente. Após a instalação foi criado o usuário genérico "aluno" com uid=10000, de maneira que todos os demais usuários possam pertencer ao grupo "aluno" com gid=10000.

Para evitar que seja criado um grupo para cada usuário, pode-se utilizar o parâmetro "--gid 10000" no comando "adduser". Note que o "home" do usuário aluno será "/home/aluno", mas no entanto, o "home" dos demais usuários deverá ficar em "/home/users/", pasta que será posteriormente exportada pelo NFS (veja também o parâmetro "--home" do comando "adduser").

# id ti
uid=1000(ti) gid=1000(ti)
grupos=1000(ti),4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare)

# adduser --uid 10000 --disabled-login aluno
Adicionando o usuário `aluno' ...
Adicionando novo grupo `aluno' (10000) ...
Adicionando novo usuário `aluno' (10000) ao grupo `aluno' ...
Criando diretório pessoal `/home/aluno' ...
Copiando arquivos de `/etc/skel' ...
Changing the user information for aluno
...

# id aluno
uid=10000(aluno) gid=10000(aluno) grupos=10000(aluno)
...

# mkdir /home/users

NFS no Servidor

Para promover o compartilhamento de arquivos, basta o pacote "nfs-kernel-server" e suas dependências. Após sua instalação verifique se o serviço está funcionando, e em caso negativo tente reiniciá-lo.

# apt-get install nfs-kernel-server
# /etc/init.d/nfs-kernel-server status

nfsd running

# /etc/init.d/nfs-kernel-server restart
* Stopping NFS kernel daemon           [ OK ]
* Unexporting directories for NFS kernel daemon...      [ OK ]
* Exporting directories for NFS kernel daemon...      [ OK ]
* Starting NFS kernel daemon           [ OK ]

Para exportar a pasta "/home/users", acrescente a seguinte linha ao final do arquivo "/etc/exports", adaptada ao endereço IP de seu servidor. Além disso, saiba que existem outros parâmetros além de "rw", "async", "root_squash" e "no_subtree_check". Note que "/16" indica a máscara "255.255.0.0", caso esteja utilizando a máscara "255.255.255.0" utilize "/24".

/home/users 192.168.0.0/16(rw,async,root_squash,no_subtree_check)

O comando "exportfs" permite visualizar (-v) ou atualizar (-a) as partições exportadas. Caso a partição "/home/users" NÃO esteja de fato exportada, cogite a hipótese de reiniciar o servidor. Caso algum firewall esteja sendo executado, certifique-se que as portas 32771, 111 e 2049 estejam abertas.

# nano /etc/exports
# exportfs -v
# exportfs -va

exporting 192.16.0.0/16:/home

# exportfs -v
/home/users 192.168.0.0/16(rw,async,wdelay,root_squash,no_subtree_check)

# shutdown -r now

NFS no Cliente

Para que as estações de trabalho possam acessar o compartilhamento NFS, basta o pacote "nfs-common" e suas dependências. Assim como no servidor, o "home" dos usuários ficará em "/home/users", lembrando que tal configuração também será gravada na base de dados do LDAP.

# apt-get install nfs-common
# mkdir /home/users


Para que a estação possa montar automaticamente a pasta "/home/users" do NFS, acrescente a seguinte linha ao final do arquivo "/etc/fstab", adaptada ao endereço ip de seu servidor.

192.168.0.2:/home/users /home/users nfs defaults 0 0

Utilize o comando "mount" sem parâmetros para visualizar os pontos de montagem, e em seguida tente montar "/home/users", para o qual nenhuma mensagem será dada em caso de sucesso. Neste ponto, será possível acessar "/home/users" mas SEM permissão de escrita. Reinicie a estação de trabalho para garantir que a montagem esteja de fato automática. Note que, embora o compartilhamento NFS esteja funcionando, o comando "id aluno" retornará "usuário inexistente".

# nano /etc/fstab
# mount
# mount /home/users
# mount

...
192.168.0.2:/home/users on /home/users type nfs (rw,addr=192.168.0.2)
...

# id aluno
id: aluno: Usuário inexistente
...

# umount /home/users
# shutdown -r now
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

Aplicando o Layer7 no Fedora Core Linux 6

Impressoras no Linux - Instalando mais de 2000 modelos

Cluster de Virtualização com Ganeti

Cluster Beowulf

Erro no alsamixer após atualização no Ubuntu 7.04

  
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