Comprensione Perché Terminal non consente di digitare una password

A volte è necessario inserire una password nel terminale, in genere per comandi sudo o su, che consente agli utenti di eseguire un comando con privilegi di super utente. Questo è abbastanza tipico per consentire l'accesso a leggere o modificare qualcosa che altrimenti non sarebbe possibile con un account utente standard. Solitamente vedi sudo precedere un altro comando, con l'aspetto di "sudo nano / etc / hosts". Sebbene la maggior parte della riga di comando e di sudo sia generalmente appropriata solo per utenti esperti, a volte gli utenti di computer più occasionali potrebbero dover rivolgersi al terminale, forse per abilitare una funzione, modificare un file di sistema o anche per la risoluzione dei problemi. Per gli utenti inesperti che si ritrovano alla riga di comando, si verifica una domanda molto frequente con l'inserimento di password nel terminale, quasi sempre relativo a sudo e l'apparente incapacità di digitare una password nella riga di comando di OS X (o Linux per quella materia) .


Ma ecco la cosa; Il terminale ti permette di digitare la tua password, semplicemente non sembra . Il cursore sullo schermo non si muoverà e non c'è alcun indicatore che la password sia stata inserita. Questo è intenzionale e funge da meccanismo di sicurezza, diversamente dall'immissione di una password in un modulo Web o da una schermata di accesso GUI standard, in genere mascherata da asterischi come ******** o da proiettili come ••••••• ••••••, la mancanza di ciò che mostra è del tutto intenzionale e non vi è alcuna indicazione di inserimento delle password sulla riga di comando. La ragione è piuttosto semplice, non fornisce alcuna indicazione per quanto tempo una password è, offrendo qualche ulteriore offuscamento per l'immissione della password.

Se questo suona confuso, non lo è affatto, ecco come funziona in pratica. Supponiamo che tu esegua un comando che richiede l'accesso sudo, sollevando così la familiare voce "Password:".

% sudo cat /etc/secret.conf
Password:

Quando viene visualizzata la richiesta: richiesta, digitare comunque la password, anche se non viene visualizzato nulla, quindi premere Invio una volta terminato. Ancora una volta, non vi è alcuna indicazione che venga inserita una password e che sia intenzionale.

Quindi eseguiamo nuovamente il comando di esempio precedente, facendo finta che la password dell'amministratore su questa particolare macchina sia "Monkey123", dovresti digitare quella password così come è richiesta, nonostante non si mostri affatto, il che significa che la sequenza sarebbe qualcosa come:

% sudo cat /etc/secret.conf
Password: Monkey123 (hit Return key)

Questo eseguirà il comando. E no, Monkey123 (o qualunque sia la password dell'amministratore) non apparirà sullo schermo, né alcun asterisco o proiettile.

In genere, un utente deve sperimentarlo una o due volte per capire come funziona, ma rimane una grande domanda per gli utenti che stanno appena iniziando ad avere visibilità sulla riga di comando. E una volta che sai, puoi trasmettere la conoscenza agli altri, quindi se qualcuno ti chiede "perché il terminale non mi consente di digitare una password?", Ora puoi rispondere e spiegarglielo.

Per chi si chiede, sì, questo comportamento predefinito può essere modificato per mostrare asterischi per ogni carattere inserito come password nella riga di comando, per sudo, su, o qualsiasi altra cosa tu stia facendo. Ciò nonostante, non è consigliabile apportare questo cambiamento, e non lo copriremo in questo particolare articolo ... forse in futuro, se vi è un certo interesse a farlo.