Wie man sich vor unvorsichtigen Kollegen schützt
Posted on February 4th, 2013 by lausser
Ein überaus praktisches Feature der Bash ist die Möglichkeit, Kommandos erneut ausführen zu lassen, indem man einfach ein Ausrufezeichen gefolgt von den ersten paar Buchstaben eines Befehls eintippt. Die History wird dabei durchsucht, bis der letzte Befehl gefunden wird, der mit genau diesen Buchstaben anfing. Anschliessend wird er ausgeführt, was allerdings nicht immer das gewünschte Ergebnis liefert.
Beispiel:
Kollege H ist als User root auf einem Server angemeldet und spielt irgendwann ein Backup einer Datenbank ein mit
mysql –u sox –p soxpw sox < /var/backups/sox.bck.2013-01-14.sql
Kollege L meldet sich als root auf dem Server an und hat im Hinterkopf, dass er irgendwann mal
mysql –u root
eingegeben hat.
Kollege L denkt sich: “hach, wie praktisch, Bash History Expansion ist schon genial…” und tippt
!my
Eine Nanosekunde später haut Kollege L auf CTRL-C und verhält sich anschliessend betont unauffällig.
Eine halbe Stunde später schreibt Kollege H: “hat irgendwer was mit der sox-Datenbank gemacht?”
Langer Rede kurzer Sinn: folgende Zeilen, ans Ende von /root/.profile gehängt, sorgen dafür, dass History Expansion ausgeschaltet wird, sobald sich jemand von L’s Rechnern einloggt.
clntaddr=${SSH_CLIENT%% }
if [[ $clntaddr =~ 10.37.112. ]] || [ $clntaddr = "10.37.2.146" ]; then
echo hello lausser
set +H
fi
Filed under Uncategorized |
One Response to “Wie man sich vor unvorsichtigen Kollegen schützt”
-
roland Says:
February 4th, 2013 at 11:47Was natuerlich auch ganz gut klappt, ist mit CTRL-R die History interaktiv zu durchsuchen. Da sieht man dann wenigstens, was man abschickt bevor man’s abschickt.
Und natuerlich sollte Kollege H nicht das Passwort auf der Kommandozeile angeben. Tztztz …
[Reply]


