ATTENZIONE: Protoserv1 è stato dismesso!!!. Ora è necessario usare la Versione 2
Per inserire le entry nella protoAAI e' sufficiente avere un client ssh.
L'autenticazione avviene solo tramite publickey, e' quindi necessario che inviate a Dael Maselli at lnf.infn.it la vostra chiave pubblica ssh in modo da autorizzarla.
Il comando da eseguire e':
ssh -p 57847 [-i rsa_private_key_file] protoserv1@dsa.infn.it
Una volta aperta la connessione, con il comando precedentemente indicato, il server aspetta i comandi uno per linea.
E' possibile eseguire un inserimento singolo scrivendo i comandi come ulteriori parametri nella linea di ssh.
Comando | Descrizione | Sintassi |
---|---|---|
TRYADD | Mostra la entry che verrebbe inserita con ADD , senza inserirla realmente | TRYADD dnsDomain userName primaryEmailAddress [mailAlternateAddress [mailAlternateAddress […]]] |
ADD | Esegue l'inserimento | ADD dnsDomain userName primaryEmailAddress [mailAlternateAddress [mailAlternateAddress […]]] |
MOD | Modifica la entry relativa alla userName sostituendo i valori degli attributi con i nuovi | MOD dnsDomain userName primaryEmailAddress [mailAlternateAddress [mailAlternateAddress […]]] |
DEL | Elimina la entry relativa alla userName | DEL dnsDomain userName |
SHO | Mostra la entry relativa alla userName presente in protoAAI | SHO dnsDomain userName (puo' contenere wildcard) |
Inserimento di una singola entry - da inserire in un eventuale script di creazione utente:
# ssh -p 57847 protoserv@dsa.infn.it ADD lnf.infn.it dmaselli Dael.Maselli@lnf.infn.it dmaselli@lnf.infn.it maselli@lnf.infn.it 1 actions requested. 1 done. Bye!
Inserimento di piu' entry in interattivo
# ssh -p 57847 protoserv@dsa.infn.it > ADD lnf.infn.it dlenci Davide.Lenci dlenci Line 1: OK - Entry added > ADD lnf.infn.it dmaselli Dael.Maselli dmaselli Maselli Line 2: OK - Entry added > ADD lnf.infn.it dmilazzo Daniele.Milazzo dmilazzo Line 3: OK - Entry added 3 actions requested. 3 done. Bye!
Inserimento di piu' entry da file
# ssh -p 57847 protoserv@dsa.infn.it < file ........... 11 actions requested. 11 done. Bye!
Nel caso si abbia uno userDB e aliases di Sendmail e' possibile generare i comandi da dare a protoserv con lo script sendmailuserdb2protoserv-0.9.zip.
I parametri da indicare sono:
Esempio:
sendmailuserdb2protoserv lnf.infn.it imap0.lnf.infn.it users.list userdb.txt aliases.txt > lnf.proto
NOTA: se il mail gateway e il mailhost (dove risiedono le inbox) coincidono, ripetere due volte il dominio come primo e secondo parametro, ad es:
sendmailuserdb2protoserv roma3.infn.it roma3.infn.it /etc/passwd roma3.userdb.txt roma3.aliases.txt > roma3.proto
Dopo aver eseguito il comando controllare in fondo al file le entry ambigue che sono state escluse e per esse generare i comandi protoserv manualmente.
Una volta preparato il file con i comandi, seguire la guida di protoserv passando il file in input.
Nel caso si usi Postfix, a e' possibile generare i comandi da dare a protoserv con lo script postfix2protoserv-0.1.zip.
I parametri da indicare sono:
Esempio:
ypcat passwd > users.list postfix2protoserv /etc/canonical /etc/aliases users.list pi.infn.it > pi.proto
Una volta preparato il file con i comandi, seguire la guida di protoserv passando il file in input.
Siccome in questo caso il recupero dei dati necessari per protoserv dipende dal disegno della Directory, e dal tipo objectClass e di attributi usati, non è stato predisposto uno script ad hoc.
Solo a titolo di esempio/suggerimento, nel seguito mostreremo come usare ldapsearch e perl per ottenere un file da dare in pasto a protoserv.
Se le entries nella directory sono del tipo:
# pinco, People, le.infn.it dn: uid=pinco, ou=People, dc=le, dc=infn, dc=it objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: eduPerson objectClass: mailRecipient objectClass: infnPerson uid: pinco eduPersonPrincipalName: pinco@le.infn.it cn: Pinco Secondo Pallino givenName: Pinco Secondo sn: Pallino mail: Pinco.Secondo.Pallino@le.infn.it mailAlternateAddress: pinco@le.infn.it mailAlternateAddress: Pinco.II.Pallino@le.infn.it mailAlternateAddress: Pinco.S.Pallino@le.infn.it
ossia se si utulizza l'attributo mail per l'e-mail canonico, e mailAlternateAddress per gli alias di posta elettronica, allora è possibile generare il file di input per protoserv usando il seguente comando
ldapsearch -LLL -h dsa.infn.it -x -b 'dc=le,dc=infn,dc=it' '(objectclass=person)' uid mail mailAlternateAddress |\ perl -ne ' if (/^(.+):\s*(.+)$/) { if ($1 eq 'dn') { print "ADD le.infn.it" } else { print " $2" } } else { print "\n" } ' > le.proto
che per l'entry corrispondente a quella visualizzata sopra, produrra' la seguante linea nel file le.proto
ADD le.infn.it pinco Pinco.Secondo.Pallino@le.infn.it pinco@le.infn.it Pinco.II.Pallino@le.infn.it Pinco.S.Pallino@le.infn.it