Forstå hvorfor Terminal ikke lar deg skrive inn et passord

Noen ganger må du skrive inn et passord i terminalen, vanligvis for sudo eller su kommandoer, som lar brukerne utføre en kommando med superbrukerrettigheter. Dette er ganske typisk for å tillate tilgang til å lese eller endre noe som ellers ikke ville være mulig med en vanlig brukerkonto. Du vil vanligvis se sudo prefixing en annen kommando, ser noe som "sudo nano / etc / hosts". Selv om det meste av kommandolinjen og sudo vanligvis bare er egnet for avanserte brukere, kan det hende at enkelte casualbrukerne må bytte til Terminal, kanskje for å aktivere en funksjon, endre en systemfil eller til og med for feilsøkingsformål. For nybegynnere som kommer opp på kommandolinjen, oppstår et svært vanlig spørsmål ved å skrive inn passord i Terminal, nesten alltid relatert til sudo og den tilsynelatende manglende evne til å skrive inn et passord i kommandolinjen til OS X (eller Linux for den saks skyld) .


Men her er saken; Terminal lar deg skrive inn passordet ditt, det ser bare ikke ut . Markøren på skjermen beveger seg ikke, og det er ingen indikator at passordet blir lagt inn i det hele tatt. Dette er forsettlig og fungerer som en sikkerhetsmekanisme, i motsetning til å skrive inn et passord i et webskjema eller en standard GUI-påloggingsskjerm, som vanligvis er maskert som stjerner som ******** eller kuler som ••••••• ••••••, mangelen på noe som vises er helt forsettlig og det er ingen slik indikasjon på å legge inn passord på kommandolinjen. Årsaken er ganske enkel, det gir ingen indikasjon på hvor lenge et passord er, og gir ytterligere forvirring til passordoppføring.

Hvis dette virker forvirrende, er det ikke i det hele tatt, slik fungerer det i praksis. La oss si at du utfører en kommando som krever sudo-tilgang, slik at du får opp det kjente "Passordet" -oppføringen.

% sudo cat /etc/secret.conf
Password:

Når passordet: forespørselen kommer opp, skriv inn passordet uansett, selv om ingenting vises og trykk på Retur når du er ferdig. Igjen er det ingen indikasjon på at et passord blir skrevet inn, og det er forsettlig.

Så la oss løpe gjennom kommandoen for eksempeleksempel igjen, og la til at administrasjonspassordet på denne maskinen er "Monkey123", du ville skrive det passordet som det ble forespurt, til tross for ikke å vises i det hele tatt, noe som betyr at sekvensen ville være noe som:

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

Dette vil utføre kommandoen. Og nei, Monkey123 (eller hva administratorpassordet er) vil ikke vises på skjermen, heller ikke noen stjerner eller kuler.

Vanligvis må en bruker bare oppleve dette en eller to ganger for å forstå det er hvordan det fungerer, men det er fortsatt et stort spørsmål for brukere som bare begynner å få eksponering for kommandolinjen. Og når du vet, kan du overføre kunnskapen til andre, så hvis noen spør deg "hvorfor lar ikke Terminal meg skrive et passord?", Kan du nå svare og forklare det for dem.

For de som lurer på, ja, denne standardoppførelsen kan endres for å vise stjerner for hvert tegn som er oppgitt som passord på kommandolinjen, for sudo, su eller hva annet du gjør. Men det er ikke anbefalt å gjøre det, og vi kommer ikke til å dekke det i denne artikkelen ... kanskje i fremtiden hvis det er noen interesse i å gjøre det.