[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Personalizzare "su"



On Tuesday 25 November 2008 21:08:19 Davide Prina wrote:
> ottima idea, ma servirebbe:
>
> 1) poter invocare su passandogli la password

Questa è la parte che potrebbe sembrare la più complessa, poiché 'su' per ovvi 
motivi di sicurezza non accetta input se non da una tty:

$ echo "SECRET" | su
su: must be run from a terminal

Per aggirare il problema quindi si possono potrebbero utilizzare le pty, 
tuttavia per sbrigarmi ho preferito utilizzare expect, in particolare il 
binding per python (pexpect: su debian è pacchettizzato come python-pexpect).

Il risultato è qui:
http://mornie.org/code/browser/misc/wrapsu.py

> 2) non far stampare a su i suoi messaggi (es: Password:)

Questo è semplice :)
Anche senza expect, nel momento in cui si fa lo spawn un processo si ha il 
compito di gestirne stdin, stdout e stderr.

> 3) far si che scrivendo "su" (se si vuole usare "su" per eseguirlo) non
> venga eseguito /bin/su o tale comando venga sostituito con il wrapper
> ... ma questo implicherebbe una reinstallazione del wrapper ad ogni
> aggiornamento del pacchetto login

Questo punto lo risolverei semplicemente modificando PATH.

eriol@mornie:~$ mv devel/misc/wrapsu.py /tmp/su
eriol@mornie:~$ chmod +x /tmp/su
eriol@mornie:~$ type su
su is /bin/su
eriol@mornie:~$ export PATH=/tmp/:$PATH
eriol@mornie:~$ su root -c id
What is the password? Insert here:

uid=0(root) gid=0(root) groups=0(root)
eriol@mornie:~$ type su
su is hashed (/tmp/su)

> Non tutte cose così semplici o per lo meno più complesse di ricompilarsi
> il sorgente ... o forse mi sbaglio?

Uhm... non so se siano più complesse (adesso in ogni caso Luca può basarsi su 
quello script ;).
Ad essere onesto, sarà pigrizia, ma provenendo da slackware dove qualunque 
cosa mi servisse dovevo pacchettizzarla tendo a ridurre al massimo tutto ciò: 
conta che ho solo 2 pacchetti fatti da me in questo momento :D
Anche per questo, per me, il wrapper rappresentava la soluzione più naturale 
:)

HTH,

-- 
 Eriol - *p = NULL; - EIBTI
 GPG Key ID 0B7C8A19
 http://mornie.org


Reply to: