====== Inserire dati nella protoAAI v1 (DISMESSO)======
**__ATTENZIONE: Protoserv1 è stato dismesso!!!__**. Ora è necessario usare la [[cn:ccr:aai:howto:protoaai:protoserv2|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.
===== Comandi =====
^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)|
==== Esempi ====
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!
====== Conversione da userDB di Sendmail ======
Nel caso si abbia uno userDB e aliases di Sendmail e' possibile generare i comandi da dare a protoserv con
lo script {{:cn:ccr:aai:howto:sendmailuserdb2protoserv-0.9.zip|sendmailuserdb2protoserv-0.9.zip}}.
I parametri da indicare sono:
* Il dominio di posta
* Il FQDN
* La lista delle username, uno per linea. Volendo va bene direttamente /etc/passwd o il risultato di `ypcat passwd`, verra' presa solo la parte della username.
* Il file userDB di Sendmail
* (facoltativo) il file aliases di Sendmail
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.
====== Conversione da file Canonical di Postfix ======
Nel caso si usi Postfix, a e' possibile generare i comandi da dare a protoserv con
lo script {{:cn:ccr:aai:howto:postfix2protoserv-0.1.zip|postfix2protoserv-0.1.zip}}.
I parametri da indicare sono:
* Il file Canonical
* Il file Aliases
* La lista delle username, uno per linea. Volendo va bene direttamente /etc/passwd o il risultato di `ypcat passwd`, verra' presa solo la parte della username.
* Il dominio di posta elettronica
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.
====== Conversione da mail routing basato su LDAP ======
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//.
==== Scenario ====
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