Het eerste wat er fout kan gaan is dat je je wachtwoord in een shell ingeeft in plaats van in een venster van een ander programma, bijvoorbeeld als je per ongeluk het verkeerde venster gefocust hebt. Druk je daarna op enter, dan probeert je shell je wachtwoord als opdracht uit te voeren - wat normaal gezien niet lukt - en voegt je wachtwoord toe aan de opdrachtgeschiedenis (in ~/.history of ~/.bash_history). Een eenvoudige maar heel efficiënte manier om dit tegen te gaan is een ! in (maar niet op het einde van) je wachtwoord gebruiken: zowel Bash als ZSH beschouwen wat achter de ! komt als een event designator. Als je zo'n wachtwoord per ongeluk in je shell intypt en op enter drukt, krijg je de foutmelding "event not found" en wordt je wachtwoord niet aan de opdrachtgeschiedenis toegevoegd.

Negeren

Maar er zijn ook opdrachten waarbij je je wachtwoord als argument aan het programma kunt of soms zelfs moet doorgeven. Geef je zo'n opdracht in, dan is je wachtwoord uiteraard als onderdeel van die opdracht te lezen in de opdrachtgeschiedenis. Bash kent gelukkig een mechanisme om dit tegen te gaan: de omgevingsvariabele HISTCONTROL. Als deze ignorespace of ignoreboth bevat, dan voegt Bash geen opdrachten toe aan de geschiedenis als ze starten met één of meerdere spaties. Doet je distributie dit nog niet (Ubuntu schakelt al jaren standaard ignoreboth in voor HISTCONTROL), voeg dan de volgende regel toe aan je ~/.bashrc:

HISTCONTROL=ignorespace

Nu moet je er wel aan denken dat je een opdracht met een wachtwoord in (of andere informatie die je niet in cleartext in je opdrachtgeschiedenis wil zien) altijd moet beginnen met een spatie. Maar eens je jezelf dit hebt aangeleerd, zal je niet meer per ongeluk wachtwoorden lekken.

Maak de geschiedenis leeg

Is het leed echter al geschied en staat je wachtwoord of een opdracht met een wachtwoord in je geschiedenis, dan zit er niets anders op dan je opdrachtgeschiedenis te legen. Gelukkig kan dat in Bash eenvoudig met de opdracht 'history -c'. Daarmee wis je dan wel je volledige opdrachtgeschiedenis van je huidige loginsessie, maar dat is slechts een klein ongemak als je daardoor de zekerheid hebt dat je wachtwoord niet meer te zien is.

Bron: Techworld