Thread Arbeitsverzeichnis aendern (12 answers)
Opened by fritz at 2006-04-13 17:15

betterworld
 2006-04-13 19:54
#64922 #64922
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=Crian,13.04.2006, 16:09]Ich empfehle, das Verzeichnis nicht zu wechseln, es sei denn, du hast keinen Einfluß auf die Programmierung der aufgerufenen ausführbaren Datei.[/quote]
Warum empfiehlst Du das?

Wechseln des Verzeichnisses kann sicherer sein, besonders, wenn man privilegiert arbeitet. Ich betrachte das jetzt aus Linux-Sicht, auch wenn "testing.exe" nicht nach Linux klingt.

Nehmen wir z. B. das klassische Beispiel: Wir möchten in /tmp ausmisten. Darin gibt es ein Verzeichnis "a", das dem Benutzer master gehört. Dieses Verzeichnis ist schon einen Monat alt, bedarf also einer Löschung. In dem Verzeichnis ist eine Datei "active". Die muss natürlich gelöscht werden, bevor das Verzeichnis selbst gelöscht werden kann. Wenn das per "unlink('a/active')" lösen, kann etwas ganz Schlimmes passieren! Eine Millisekunde nachdem wir per "stat" usw herausgefunden haben, dass die Datei tatsächlich dem Benutzer "master" gehört, kommt "master" selbst daher, loescht das Verzeichnis "a" und legt in /tmp einen Symlink namens "a" auf "/etc/iptables" an. Noch eine Millisekunde später machen wir unser "unlink ('a/active')". Damit haben wir die Firewall geloescht, oh nein!

So weit ich weiß, kann man solche Szenarios am besten umgehen, indem man chdir benutzt.

In diesem Beispiel kam jetzt kein externes Programm "testing.exe" vor, aber es sei dem Leser überlassen, ein Szenario zu entwerfen, in dem solch ein Programm vorkommt.\n\n

<!--EDIT|betterworld|1144944089-->

View full thread Arbeitsverzeichnis aendern