Firmenbrief

15.12.2009

Tipps vom LIS-Service. Heute: Programme als „Root“ starten



Frage: Warum kann ich mein Linux-System direkt starten, wenn ich als User angemeldet bin, jedoch nicht, wenn ich als „root“ eingeloggt bin?

Antwort: Das hat mit den Grundeinstellungen, dem so genannten „Default“ zu tun. Die default Einstellungen eines Linux Betriebssystems sind in der Regel so gehalten, dass der aktuelle Pfad, in dem sich der User befindet im Suchpfad integriert sind. Das trifft jedoch nicht auf den Administrator Account 'root' zu. Hier ist explizit aus Sicherheitsgründen das aktuelle Verzeichnis ausgenommen.

Auf die Weise soll verhindert werden, dass schädlicher Code, beispielsweise Trojaner, oder so genannte Skripte mit Befehlen wie „Kopiere mir alles nach ...“ versehentlich gestartet werden können. Hier ein kleines Beispiel, wie sinnvoll dieser kleine aber feine Unterschied ist:

Jeder, der schon mal auf der Konsole, dem Textterminal - beispielsweise via SSH,  auf einem Server/Client gearbeitet hat, kennt die kleinen, alltäglichen Vertipper:

- mr statt rm  (rm - Löschen einer Datei)
- sl statt ls  (ls - Listing eines Verzeichnisses)
- iv statt vi  (vi - Editor)

In der Regel meldet sich die Shell mit einer Fehlermeldung, dass es die Anwendung nicht gefunden hat. Nehmen wir jedoch einfach mal an, Sie vertippen sich und es passiert trotzdem das, was sie erwarten. Würde ihnen das auffallen? Vermutlich nicht. Jedoch wäre es jetzt schon passsiert – versehentlich wurde schädlicher Code gestartet oder Skripte ausgeführt. Der Angreifer, der Ihnen diese Software/Scripte untergeschoben hat, könnte nun das machen, worauf er mit seinem Code abzielt.

Aus diesem Grund muss der Administrator Programme im aktuellen Verzeichnis wie folgt starten:

./<Name der Anwendung>

Nun stellt sich die Frage, wie ein normaler Anwender an empfindlichen Stellen eine Software oder ein Script ablegen soll, auf die der Administrator danach dann zufällig zugreift. Es gibt im System zahlreiche Mögichkeiten, als Beispiel sei das Verzeichnis für temporäre Dateien /tmp genannt.

Will man das Programm dennoch starten, kann man es explizit mit voller Pfadangabe aufrufen (/foo/bar/Programm) oder in Kurzform mit ./Programm. Der Punkt steht hierbei für das aktuelle Verzeichnis.