[LatinaLUG] Modifiche a CUPS

Enrico Bassetti enrico.bassetti@q4q5.it
Dom 20 Lug 2008 22:13:12 CEST


Common Unix Printing System

Dunque, sviluppando il mio ultimo Progetto (notare la 'P'), che consiste
in pratica nel configurare CUPS per far inviare via email (che bello
avere un sistema di posta casalingo) una stampa che converte in PDF, ho
dovuto mettere mano al sorgente di cups per una accortezza da nulla ma
che può creare problemi ad esempio nel mio caso.

Allora, CUPS memorizza i dati di accesso dentro /etc/cups/passwd.md5 nel
formato nomeutente:gruppo:md5password

Il problema dell'md5 è che sembra cambi a seconda non solo della
password (condizione normale), ma anche dello username e del gruppo.

Indipercuilaquale mi son buttato nel(la) sorgente per cercare qualcosa
di utile, ed ho scoperto che l'implementazione md5 di cups è abbastanza
criptica (qualche giorno di questi mi ci metto con impegno ;-) ). Ho
deciso quindi di sfruttare la cosa a mio vantaggio, cioè uso le stesse
funzioni che usa cups per la password.

Il mio scopo è infatti quello di "scriptare" il tutto, ovvero devo
creare una pagina web dove $tizio (oggetto "istanziato" della classe
"Utonti") metta la sua password che va a finire dritta dritta (in
automatico, ovviamente) in quel maledetto file.

I miei tentativi con tabelle di rainbow e john the ripper (e similari)
per capire cosa è quel maledetto hash hanno avuto esito negativo,
soprattutto a causa l'impressionante potenza di calcolo delle macchine a
mia disposizione (NO, il dual core non funziona più sto periodo...).

Essendo un po' complicato anche solo l'uso delle funzioni di cups,
decisi di modificare direttamente il sorgente del file lppasswd per
fargli accettare la %#@%$£! di password anche come parametro (o meglio,
SOLO come parametro). Ovviamente il test, dopo vari "Segmentation Fault"
e qualche kernel panic (forse non dovuti direttamente al programma
modificato), sono riuscito nell'impresa.

Nel grande spirito del sorcio apert... ehm, dell'open source, condivido
con voi questa accozzaglia di roba. Ovviamente non è una patch e non
vuole essere una patch, anche perché vado a stroncare il sistema di
inserimento password dal terminale. Quando avrò più tempo integrerò i
due sistemi (non che non sia possibile subito, ma ho un bicchiere
d'acqua e menta che mi aspetta) e magari segnalerò la cosa agli
sviluppatori (sai, potrebbe far comodo).

La versione di cups è la 1.3.7 con le patch di ubuntu (cioè in pratica
l'aggiunta della cartella debian/ per creare il pacchetto, perché ho
visto che non si sono azzardati a mettere mano al sorgente).

Ovviamente non sono responsabile di segfault, di crash, di kernel panic,
di esplosioni (termo)nucleari derivanti dalla mia patch. Usatela a
vostro rischio e pericolo.

Enrico
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        lppasswd_commandline.patch
Tipo:        text/x-patch
Dimensione:  2617 bytes
Descrizione: non disponibile
Url:         http://lists.linux.it/private/latina/attachments/20080720/0fa926a8/attachment.bin 


Maggiori informazioni sulla lista latina