User Tools

Site Tools


Sidebar

cn:ccr:aai:howto:protoserv

Inserire dati nella protoAAI v1 (DISMESSO)

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.

Comandi

ComandoDescrizioneSintassi
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 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 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
cn/ccr/aai/howto/protoserv.txt · Last modified: 2018/04/03 15:37 by enrico@infn.it