Ir para o conteúdo
ou

Software livre Brasil

0 comunidades

Nenhum(a)

 Voltar a Blog
Tela cheia

Migração de usuário para o GOsa

12 de Março de 2009, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 1129 vezes

Já faz algum tempo que não escrevo algo neste blog, o tempo esta correndo muito rápido. Mas devido alguns pedido por e-mail estou escrevendo sobre a migração de usuários para a ferramenta GOsa.

Este é um assunto que mais cedo ou mais tarde todos temos que passar. Após a instalação da infraestrutura com o  OpenLDAP , SAMBA, GOsa e outras ferramentas de integração, temos que criar os usuários.

Normalmente programamos uma estrutura assim em um ambiente que já existem os usuários e, portanto precisamos migrar esses usuários para o LDAP e que sejam visível na ferramenta GOsa.

O processo de migração é fácil. Precisamos basicamente criar um arquivo LDIF com um padrão de registro que vamos utilizar. Como exemplo, utilizarei um usuário que faz autenticação no samba e no proxy squid.

Para este caso precisamos manter duas variáveis sobre controle para não repetir os seus valores. A primeira variável é o uidnumber e a outra é o SID do samba.

No caso do uidNumber podemos pesquisar na base LDAP todos os uidNumber, verificar o maior e incrementar para o próximo usuário. Para realizar esse processo utilizamos o seguintes comando no bash.

 

id_tmp=`ldapsearch -LL -x -b "dc=base,dc=ldap" uidNumber | grep uidNumber | sort -n | tail -1 | awk '{print $2}'`

 

Com o comando acima, obtemos o maior uidNumber cadastrado na base LDAP. E o comando abaixo incrementa o idNumber encontrado de mais um (+1).

 

id=`expr $id_tmp + 1`

 

Com a variável SID o procedimento e o mesmo. O formato do SID é este S-1-5-21-3427200827-1333373418-835043165-8990, e o incremento é feito nos quatro últimos números. Para fazer isso podemos utilizar os seguintes comandos bash.

 

sid_tmp=`ldapsearch -LL -x -b "ou=users,dc=nucleo,dc=unasp" sambaSID | grep sambaSID | sort -n | tail -1 |awk '{print $2}'`
sid_p1=`echo $sid_tmp | cut -d - -f 1,2,3,4,5,6,7`
sid_p2=`echo $sid_tmp | cut -d - -f 8`
sid_p3=`expr $sid_p2 + 2`
sid="$sid_p1-$sid_p3"

 

Com o comando acima,  pegamos o último SID cadastrado na base LDAP e incrementamos os últimos 4 números.

Basicamente esses são os principais elementos de dificuldade para fazermos a migração. O próximo passo é definir o arquivo que lista todos os usuários que serão migrados para a base LDAP.

Segue um exemplo deste arquivo, lembre-se de fazer os ajustes para se adequar a sua realidade.

login:Primeiro Nome:SobreNome:Unidade:descrição:departamento:sala:email:telefone

Perceba que o arquivo limita os campos com o separador (: dois ponos). O programa deve ler essas variáveis da seguinte forma:

login=`echo $line | cut -d : -f 1`
p_nome=`echo $line | cut -d : -f 2`
u_nome=`echo $line | cut -d : -f 3`
unidade=`echo $line | cut -d : -f 4`
descricao=`echo $line | cut -d : -f 5`
departamento=`echo $line | cut -d : -f 6`
email=`echo $line | cut -d : -f 7`
tel=`echo $line | cut -d : -f 8`

Esses campos são gravados nos seguintes atributos na base LDAP.

Script

Atributo LDAP

Login

Uid

Descricao

Ou

Departamento

departmentNumber

Tel

TelephoneNumber

O

Unidade

Email

HomePostalAddress

Login

Uid

Sid

SambaSID

Ao executar o script é necessário passar como parâmetro o arquivo que contêm a lista de todos os usuários.

[root@cabeca]# ./migracao list_usuario

O link abaixo tem o script completo. 


Fonte: http://www.nisled.org/?p=97

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.