Forstå hvorfor Terminal Lad dig ikke skrive en adgangskode

Nogle gange skal du indtaste et kodeord i terminalen, normalt for sudo eller su kommandoer, som lader brugerne udføre en kommando med superbrugerrettigheder. Dette er ret typisk for at give adgang til at læse eller ændre noget, der ellers ikke ville være muligt med en standard brugerkonto. Du vil normalt se sudo prefixing en anden kommando, ser noget ud som "sudo nano / etc / hosts". Selv om det meste af kommandolinjen og sudo generelt kun er egnet til avancerede brugere, kan det være, at flere afslappede computerbrugere skal henvende sig til Terminal, måske for at aktivere en funktion, ændre en systemfil eller endda til fejlfinding. For nybegyndere, der kommer op på kommandolinjen, opstår der et meget almindeligt spørgsmål ved at indtaste adgangskoder til Terminal, næsten altid relateret til sudo og den tilsyneladende manglende evne til at skrive et kodeord i kommandolinjen til OS X (eller Linux for den sags skyld) .


Men her er sagen; Terminal giver dig mulighed for at skrive din adgangskode, det ser bare ikke ud . Markøren på skærmen vil ikke bevæge sig, og der er ingen indikator, at adgangskoden indtastes overhovedet. Dette er forsætligt og fungerer som en sikkerhedsmekanisme, i modsætning til at indtaste et kodeord i en webformular eller en standard GUI login skærm, som typisk er maskeret som stjerner som ******** eller kugler som ••••••• •••••• Manglen på noget viser er helt tilsigtet, og der er ingen sådan indikation for at indtaste adgangskoder på kommandolinjen. Årsagen er ret simpel, det giver ingen indikation for, hvor længe et kodeord er, hvilket giver yderligere forvirring til adgangskoden.

Hvis det lyder forvirrende, er det slet ikke, sådan fungerer det i praksis. Lad os sige, at du udfører en kommando, der kræver sudo-adgang, og dermed opretter den kendte "Password:" -indgang.

% sudo cat /etc/secret.conf
Password:

Når adgangskodeforespørgslen kommer op, skal du skrive adgangskoden alligevel, selvom der ikke vises noget, så tryk Retur, når du er færdig. Igen er der ingen tegn på, at der indtastes et kodeord, og det er forsætligt.

Så lad os køre igennem kommandoen forudgående eksempel igen, og lade foregive administratorpassordet på denne bestemte maskine er "Monkey123". Du ville indtaste den adgangskode, som den blev anmodet om, trods ikke at blive vist, hvilket betyder, at sekvensen ville være noget som:

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

Dette vil udføre kommandoen. Og nej, Monkey123 (eller hvad admin-kodeordet er) vil ikke blive vist på skærmen, heller ikke nogen stjerner eller kugler.

En bruger skal kun opleve dette en eller to gange for at forstå, hvordan det virker, men det er stadig et stort spørgsmål for brugere, der lige er begyndt at få eksponering for kommandolinjen. Og når du ved det, kan du videregive viden til andre, så hvis nogen spørger dig om "hvorfor tillader Terminal mig ikke at skrive et kodeord?", Kan du nu svare og forklare det for dem.

For de undrende, ja, denne standardadfærd kan ændres for at vise stjerner for hvert tegn, der er indtastet som adgangskoden på kommandolinjen, for sudo, su eller hvad du ellers gør. Ikke desto mindre anbefales det ikke at foretage denne ændring, og vi vil ikke dække det i denne artikel ... måske i fremtiden, hvis der er nogen interesse i at gøre det.