[Linuxtrent] Re: Nascondere password in ps (era Re: Comando "screen" e privacy)

  • From: Daniele Pizzolli <ors@xxxxxxxx>
  • To: Linuxtrent <linuxtrent@xxxxxxxxxxxxx>
  • Date: Sat, 19 Dec 2015 17:15:24 +0100

On Sat, Dec 19 2015, Cristian Consonni wrote:

Peccato che grazie al single sign-on, con la password della vpn, o del
wireless si accede anche alla posta, ai documenti...

Giusto anche questo.

Comunque, se qualcuno ha accesso al tuo sistema il modo più semplice
per spiarti la password di ateneo è guardare nella configurazione del
WiFi (ok, potresti avere selezionato l'opzione per inserire la
password ogni volta, ma sarebbe il primo tentativo che farei).

Giusto, attualmente è l'unica password in chiaro sul mio file system.

Sarebbe auspicabile che i network manager per lo meno la crittassero con
una master password o la chiedessero ad un password manager...

Secondo, ovviamente ogni soluzione che prevede di scrivere la password
in qualche file è esposta al fatto che un utente che riesca a leggere
i tuoi file può scoprire la password.

Giusto, nel mio caso il file era temporaneo, appena lanciata la
connessione viene rimosso.

Detto questo quello che ha proposto Flavio (cioè di usare STDIN) pare
corretto (e lo indicano anche qua[1]), ma non funziona sempre perché
per esempio la password va indicata come parametro e quindi non c'è
modo di passare il valore direttamente da STDIN.

Tuttavia nella stessa risposta[1] viene anche citato `expect`. expect
è un linguaggio che permette di scrivere script che simulano
l'interazione dell'utente con altri programmi, compreso il digitare le
password. Con il comando `autoexpect` si può anche registrare la
propria attività da shell.

Oh, quanti anni che non uso expect... più o meno da quando non uso più
telnet. Grazie del suggerimento. In effetti, lottando con qualche
idiosincrasia di tlc/expect ottengo il seguente script, che mi sembra
una cosa ragionevole, ma accetto patch :-)

Da usare, una volta ottenuta la password $MY_PASS in maniera sicura:

printf '%s' "${MY_PASS}"| vagrant ssh -- \
'/vagrant/pwdpipe sudo /home/vagrant/nc/ncsvc \
-h vpnhost -r realm -u user \
-f /vagrant/certificato_ss.pem -log-level 4'

Ciao,
Daniele

cat <<EOF > pwdpipe
#!/usr/bin/expect --

# Read the password from a stdin and print it interactively at the
# password prompt of the spawned program that is run by command line
# arguments, like sudo.
#
# Example Usage:
#
# printf '%s' "${SECUREPASS}" | pwdpipe interactive_command

# This is a workaround for not running command that require password
# interactively or insecurely as a command line parameter

# Read the password from stdin
set pwd [read stdin]

# Please note the eval usage after converting the list to a string
eval spawn [join $argv " "]

# Send the password at correct time
expect "Password:"
send "$pwd\n"

# Discard the pwd as soon as possible
set pwd ""
expect "Connecting to*"

# Fix the ouput to a full line
send_user "\n"

# NOTE: here the connection should be established and the process
# detached, so the following should be useless
# trap exit {SIGINT SIGTERM}
# interact
# wait
EOF
--
Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: