next up previous contents
Next: About this document ... Up: La migrazione del Name Previous: L'autententicazione   Contents


La migrazione di utenti e gruppi

Il primo passo è migrare i gruppi, al solito si usano gli script di migrazione del pacchetto migrationtools, con lo script migrate_group.pl si effettua la migrazione dei gruppi; il comando da utilizzare è:

[root@havnor migrationtools]# ./migrate_group.pl /etc/group group.ldif
che crea le voci relative a tutti i gruppi presenti in /etc/group in group.ldif.

Il problema è che in /etc/group sono presenti anche tutti i gruppi di sistema (come mail, news, ecc.) che non ha senso migrare (e possono essere molto diversi da ditribuzione a distribuzione). Per questo motivo è opportuno modificare il file lasciando solo voci relative a gruppi effettivi; ad esempio per i gruppi personali degli utenti queste saranno della forma:

dn: cn=piccardi,ou=Group,dc=gnulinux,dc=it
objectClass: posixGroup
objectClass: top
cn: piccardi
userPassword: {crypt}x
gidNumber: 1000
mentre se abbiamo dei gruppi utilizzati come gruppi di lavoro avremo qualcosa del tipo di:
dn: cn=cvsusers,ou=Group,dc=gnulinux,dc=it
objectClass: posixGroup
objectClass: top
cn: cvsusers
userPassword: {crypt}x
gidNumber: 103
memberUid: claudioc
memberUid: dariar
memberUid: diegods
memberUid: francescog
memberUid: marcop
memberUid: paolomu
memberUid: piccardi
memberUid: riccardog
memberUid: riccardom
memberUid: simonepi

Una volta migrati i gruppi si potrà ripetere il procedimento con gli utenti, in questo caso lo script da utilizzare è migrate_passwd.pl, ed il comando usato è:

[root@havnor migrationtools]# ./migrate_passwd.pl  /etc/passwd passwd.ldif

Anche in questo caso occorrerà provvedere ad eliminare dall'elenco tutti gli utenti di sistema (come root, daemon, ecc.) che di norma sono locali alle varie macchine e non devono (specie root) essere messi sul server. Un esempio di voce relativa ad un utente è la seguente:

dn: uid=simonepi,ou=People,dc=gnulinux,dc=it
uid: piccardi
cn::U2ltb25lIFBpY2NhcmRp
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$7IDw9Tn0$/QvjoR4CNuQptwLmtGIQA0
shadowLastChange: 11354
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1002
gidNumber: 1002
homeDirectory: /home/piccardi
gecos: Simone Piccardi,,,

Una volta ripuliti entrambi i file si potrà passare alla immissione dei dati nell'elenco con il solito comando ldapadd, e cioè con i comandi:

ldapadd -x -D"cn=admin,dc=gnulinux,dc=it" -W -f group.ldif
ldapadd -x -D"cn=admin,dc=gnulinux,dc=it" -W -f passwd.ldif

Dopo di che occorrerà abilitare il Name Server Switch a cercare l'informazione su LDAP; il primo passo è allora di modificare /etc/nsswitch.conf per abilitare la ricerca su LDAP, aggiungendo modificando le righe:

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap
dopo di che occorre settare /etc/libnss-ldap.conf per fargli mappare adeguatamente le informazioni sull'elenco con quelle che servono per i servizi, questo si fa con le righe:
nss_base_passwd    ou=People,dc=chl,dc=it?one
nss_base_shadow    ou=People,dc=chl,dc=it?one
nss_base_group     ou=Group,dc=chl,dc=it?one
e a questo punto si può verificare che le informazioni vengano viste correttamente con i comandi:
[root@havnor libpam-ldap]# getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
...
piccardi:x:1000:1000:Simone Piccardi,,,:/home/piccardi:/bin/bash
claudioc:x:1001:1001:Claudio Cicali,,,:/home/claudioc:/bin/bash
simonepi:x:1002:1002:Simone Piccardi,,,:/home/simonepi:/bin/bash
...
[root@havnor libpam-ldap]# getent group
root:x:0:
daemon:x:1:
bin:x:2:
...
piccardi:x:1000:
claudioc:x:1001:
simonepi:x:1002:
...
[root@havnor libpam-ldap]# getent shadow
root:$1$jjGU2TK$jHJVQBp/Xb6bmUBzmT7ubjY:11376:0:99999:7:::
daemon:*:11376:0:99999:7:::
bin:*:11376:0:99999:7:::
...
piccardi:$1$jJfMgLtBSmTK$jHJVQEzgr8QT7ujYj1:11348::99999:7:::0
claudioc:$1$isjGU2$GdeXZwMBqklTK$jHJVGeaEY0:11354::99999:7:::0
simonepi:$1$tGFJd$GPmBp/XVQEzgr8Qb6bmUBzHxl:11354::99999:7:::0
...

Verificato che le informazioni sono raggiunte in maniera corretta si può passare ai settaggi relativi a LDAP; anzitutto occorre le opzioni relative a PAM in ldap.conf, queste sono:

pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_member_attribute gid
pam_template_login_attribute uid
pam_password crypt

Infine occorre predisporre per l'uso di pam-ldap i vari servizi; per ciascuno di essi PAM prevede la presenza di un file nella directory /etc/pam.d, per abilitare il supporto per l'autenticazione su LDAP vanno aggiunte le righe:

auth       sufficient pam_ldap.so
account    sufficient pam_ldap.so
session    sufficient pam_ldap.so
password   sufficient pam_ldap.so
prima13 delle equivalenti che usano pam_unix.so, in modo da utilizzare le informazioni su LDAP se ci sono, e altrimenti passare al meccanismo classico di autenticazione di Unix.



Footnotes

... prima13
la direttiva sufficient specifica che se il meccanismo di autenticazione funziona non c'è bisogno di proseguire oltre per provare i successivi. Per questo questa deve essere specificata prima delle altre richieste (che di norma sono con required).

next up previous contents
Next: About this document ... Up: La migrazione del Name Previous: L'autententicazione   Contents
Simone Piccardi 2002-09-28