On 11.01.06 20:43:27, Andre Berger wrote: > * Andreas Pakulat (2006-01-11): > > On 11.01.06 18:28:40, Andre Berger wrote: > > > bei der Installation von DenyHosts (gegen SSH brute force attacks; > > > nicht Teil von Sarge) auf ein Sarge-System bin ich auf folgendes > > > Problem gestossen: Sowohl das beiliegende Startscript als auch > > > denyhosts.py selbst verwenden "#!/usr/bin/env python". So eingeloggt > > > kann ich das Script mit "/etc/init.d/denyhosts start" starten (als > > > root; es handelt sich dabei um ein nicht-Debian Python-Startscript, > > > das denyhosts mit der Option --daemon startet). > > > > Hast du den Sinn der Zeile verstanden? > > Wie meinen? DenyHosts laeuft eben als Daemon und wird alle dreissig > Sekunden aktiv. Dass es als root laeuft, ist nicht optimal, aber > daran bastele ich spaeter mit Hilfe der DenyHosts-FAQ. Oder meintest > du das Shebang?
Genau das Shebang, insbesondere das du dir anguckst was env eigentlich bewirkt und warum dann "das richtige" Python aufgerufen wird. > > > Um DenyHosts allerdings aus dem Runlevel aus zu starten, musste ich > > > in beiden Scripts die Interpeter-Zeile in den absoluten Pfad zum > > > Python-Binary aendern. > > > > Hmm, wo ist das Python denn installiert? /usr/bin sollte doch auch bei > > Skripten in /etc/init.d im Pfad liegen oder irre ich mich da jetzt? > > Vielen Dank, das hat mich zur Loesung gefuehrt. Ich hatte python-2.3 > installiert und mit update-alternatives /etc/alternatives/python > erzeugt -- genauer gesagt manuell erzeugen muessen, da apt-get > install es nicht von sich aus tat. Das liegt daran, dass die Python-Pakete nicht das Alternatives-System nutzen. Die Python-Pakete installieren selbststaendig einen Symlink /usr/bin/python der auf die richtige Version zeigt. Bzw. tut das Paket python dies. > Ich stelle nun allerdings fest, dass kein Link /usr/bin/python > erzeugt wurde und "which python" auf meinen manuellen Symlink > /usr/local/bin/python zeigte. Das wird der Grund gewesen sein, IIRC ist PATH initial auf "/bin:/sbin:/usr/sbin:/usr/bin" wenn root die UID ist. Somit wird python nicht gefunden. > Nach dem Erzeugen von Symlinks von > /etc/alternatives/py{thon,gettext,doc} nach /usr/bin/ klappt es nun > wie gewuenscht. apt-get install python loest das Problem ohne manuelles Eingreifen. Analog gcc installiert dir das immer nen Symlink auf das aktuelle Default-Python. > > > Waehrend /etc/init.d/denyhosts Upgrades ueberdauert, muss ich > > > denyhosts.py bei jedem Upgrade von Hand aendern, was mir zu > > > fehleranfaellig ist. > > > > Klaro, aber du koenntest das init.d-Skript so abaendern das die > > PATH-Variable mit dem Pfad zum python-Binary erweitert wird. Danach > > sollte env in dem denyhosts.py Skript auch den neuen PATH enthalten und > > somit python finden. > > Interessehalber: Wie setz man denn eine globale Variable in Python > auf den Wert einer Shell-Variablen? Das willst du doch gar nicht, was du machen wollen wuerdest waere die PATH-Variable zu erweitern und damit das 2. Python-Skript ausfuehren. Wie das genau aussieht weiss ich so aber auch nicht. Andreas -- You never know how many friends you have until you rent a house on the beach. -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)