[howto] Poppassd su Debian 5 (cambiare la password da Horde)
Poppassd è un programma che permette di cambiare la password di sistema e può essere utile per consentire agli utenti di cambiare la propria password di posta. Horde ad esempio dispone di un modulo che si interfaccia a poppassd per permettere agli utenti di cambiare la propria password dalla webmail.
Su Debian 5 italiana, è necessario apportare delle modifiche ai sorgenti di poppassd per far si che possa funzionare correttamente.
Scaricare i sorgenti dal sito ufficiale del programma http://www.netwinsite.com/poppassd/
cd /usr/src/
wget ftp://netwinsite.com/pub/poppassd/poppassd.c
nano -w poppassd.c
Localizzare la riga static char *P1[] =
e sostituire "password: ",
con "Immettere nuova password UNIX: ",
Localizzare la riga static char *P2[] =
e sostituire "retype new unix password: ",
con "Immettere nuova password UNIX:",
Localizzare la riga static char *P3[] =
e sostituire "new password (again):",
con "Reimmettere la nuova password UNIX:",
Localizzare la riga static char *P4[] =
e sostituire "password changed",
con "passwd: password aggiornata correttamente",
Sostanzialmente, il programma richiama il comando passwd e ne analizza le risposte confrontandole con quelle definite nei vettori P1, P2, P3 e P4 per “capire” come comportarsi. Quello che si è fatto, è sostituire le stringhe che avrebbe restitutito passwd su un sistema Debian inglese con quelle restituite dalla versione localizzata italiana.
Compilare il programma e copiare l’eseguibile nella cartella /usr/local/bin
gcc poppassd.c -o poppassd -lcrypt
cp poppasswd /usr/local/bin
chmod +x /usr/local/bin/poppasswd
Aggiungere poppassd come servizio
Editare il file /etc/inetd.conf aggiungendo in fondo la riga
poppassd stream tcp nowait root /usr/local/bin/poppassd
Riavviare il servizio inetd
/etc/init.d/openbsd-inetd restart
Testare il funzionamento
telnet localhost:106
200 your poppassd v1.6a hello, who are you?
user utente
200 your password please.
pass password
200 your new password please.
newpass nuovapassword
200 Password changed, thank-you.