====== 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