Begrijpen waarom Terminal geen wachtwoord kan invoeren

Soms moet u een wachtwoord in de terminal invoeren, meestal voor sudo- of su-opdrachten, waarmee gebruikers een opdracht met supergebruikersrechten kunnen uitvoeren. Dit is vrij typisch voor het toestaan ​​van toegang om iets te lezen of te wijzigen dat anders niet mogelijk zou zijn met een standaard gebruikersaccount. Meestal ziet u sudo als voorvoegsel voor een andere opdracht, er ongeveer zo uitziend als "sudo nano / etc / hosts". Hoewel het grootste deel van de opdrachtregel en sudo over het algemeen alleen geschikt zijn voor gevorderde gebruikers, moeten af ​​en toe meer informele computergebruikers zich wenden tot de Terminal, misschien om een ​​functie in te schakelen, een systeembestand te wijzigen of zelfs voor het oplossen van problemen. Voor beginnende gebruikers die eindigen op de opdrachtregel, komt een veel voorkomende vraag voor bij het invoeren van wachtwoorden in de Terminal, bijna altijd gerelateerd aan sudo en het schijnbare onvermogen om een ​​wachtwoord in te typen in de opdrachtregel van OS X (of Linux overigens) .


Maar hier is het ding; Terminal laat je je wachtwoord typen, het ziet er gewoon niet uit . De cursor op het scherm zal niet bewegen en er is geen indicator dat het wachtwoord überhaupt wordt ingevoerd. Dit is opzettelijk en dient als een beveiligingsmechanisme, in tegenstelling tot het invoeren van een wachtwoord in een webformulier of een standaard GUI-inlogscherm, dat doorgaans wordt gemaskeerd als sterretjes zoals ******** of kogels zoals ••••••• ••••••, het ontbreken van iets dat vertoont is geheel opzettelijk en er is geen dergelijke indicatie van het invoeren van wachtwoorden op de opdrachtregel. De reden hiervoor is vrij eenvoudig, het geeft geen indicatie voor hoe lang een wachtwoord is, en biedt nog meer onduidelijkheid over het invoeren van het wachtwoord.

Als dit verwarrend klinkt, is het dat helemaal niet, zo werkt het in de praktijk. Laten we zeggen dat u een opdracht uitvoert die sudo-toegang vereist, waardoor het bekende "wachtwoord:" -item wordt weergegeven.

% sudo cat /etc/secret.conf
Password:

Wanneer het wachtwoord: request verschijnt, typt u het wachtwoord toch, zelfs als er niets wordt weergegeven en druk op Return als u klaar bent. Nogmaals, er is geen indicatie dat een wachtwoord wordt ingevoerd, en dat is opzettelijk.

Laten we het vorige voorbeeld nogmaals doornemen, alsof het admin-wachtwoord op deze specifieke machine "Monkey123" is, zou je dat wachtwoord typen zoals het is gevraagd, ondanks dat het helemaal niet wordt weergegeven, wat betekent dat de reeks er ongeveer zo uitziet:

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

Dit zal het commando uitvoeren. En nee, Monkey123 (of wat het admin-wachtwoord ook is) verschijnt niet op het scherm, ook geen sterretjes of kogels.

Meestal hoeft een gebruiker dit slechts één of twee keer te ervaren om te begrijpen hoe het werkt, maar het blijft een geweldige vraag voor gebruikers die net beginnen te worden blootgesteld aan de opdrachtregel. En als je eenmaal weet, kun je de kennis doorgeven aan anderen, dus als iemand je vraagt: "waarom laat de terminal me geen wachtwoord typen?", Kun je deze nu beantwoorden en uitleggen.

Voor degenen die zich afvragen, ja, dit standaardgedrag kan worden gewijzigd om asterisken weer te geven voor elk teken dat is ingevoerd als het wachtwoord in de opdrachtregel, voor sudo, su of wat je ook aan het doen bent. Desalniettemin wordt het maken van die verandering niet aanbevolen, en we gaan het in dit specifieke artikel niet behandelen ... misschien in de toekomst als er enige interesse in is om dit te doen.