Gerade auf einem Server, auf dem sich mehrere Benutzer tummeln, sollten manche Dinge lieber verborgen bleiben. Führen Sie unter Linux Befehle auf dem Terminal aus, werden diese in die History geschrieben – genauer gesagt in die Datei „.bash_history„, hierbei handelt es sich um eine reine Textdatei. Nutzen Sie Zsh – nennt sich diese Datei „.zsh_history“ – hierbei dasselbe:
Nutzen Sie einen richtigen root-Account, landen diese Befehle unter „/root„. Nehmen wir jetzt ein einfaches Beispiel – Sie arbeiten gerade mit MySQL und schreiben der Bequemlichkeit halber das Passwort gleich mit in den Befehl – das Passwort landet natürlich in der History. Jeder Benutzer mit administrativen Rechten kann nun in die History einsehen.
Jetzt könnte man natürlich mit einem Texteditor diese Befehle wieder aus der History löschen – oben finden Sie die ältesten, unten die aktuellsten. Dies ist halt recht umständlich und kann man auch vergessen.
Aber, es gibt natürlich auch andere Methoden – man muss sie nur kennen.
Unter auf Debian basierenden Linux-Distributionen, dazu gehören natürlich auch Ubuntu und darauf basierende, sowie unter openSUSE setzen Sie vor einem Befehl ganz einfach ein Leerzeichen – etwa:
ls -lha
statt:
ls -lha
Setzen Sie ein Leerzeichen vor einem Befehl, landet dieser nicht in der History. Der Befehl lässt sich somit auch nicht mit Strg+r oder mit der Pfeil-nach-oben-Taste nicht finden. Achtung – dies funktioniert jedoch nur, wenn Sie die Bash nutzen.
Ob die Funktion aktiviert ist, zeigt der Befehl:
echo $HISTCONTROL
Im Screenshot oben sehen Sie zu Beginn den Befehl in der Zsh – nicht aktiv, darunter in der Bash – hier ist dieser aktiv. Erhalten Sie keine Ausgabe, ist die Funktion nicht aktiv, erhalten Sie eine der beiden folgenden Ausgaben, ist diese aktiv:
ignorespace
ignoreboth
Erste Variable wirkt nur bei Leerzeichen – geben Sie den Befehl nochmals ohne Leerzeichen ein, landet dieser in der History. Zweite Variable ist praktischer – geben Sie den Befehl mit anführendem Leerzeichen ein und ein zweites Mal ohne – wird auch der zweite Befehl, auch ohne Leerzeichen nicht in die History geschrieben.
Ist die Funktion nicht aktiv, können Sie diese aktivieren, indem Sie diese in der Datei „.bashrc“ aktivieren, indem Sie folgende Zeile einfügen (natürlich nur eine):
HISTCONTROL=$HISTCONTROL ignorespace
HISTCONTROL=$HISTCONTROL ignoreboth
Anschließend laden Sie die Konfiguration mit:
source ~/.bashrc
neu, oder starten das Terminal neu.
Noch keine Reaktion