Projekt mit Root in PyDev / LiClipse debuggen

8

Für ein Projekt, das ich benutze, das scapy und deshalb Sockets verwendet, muss ich als root debuggen können.

Ich habe bereits herausgefunden, wie man den Interpreter als root startet, ohne dass das System um Erlaubnis bittet. Ich habe hinzugefügt:

%Vor%

zu /etc/sudoers.tmp . Der Pfad, den ich verwendet habe, führt zum Python-Interpreter der virtuellen Umgebung, die ich für dieses Projekt verwende. Das LiClipse-Projekt nutzt diesen Weg ebenfalls. Jetzt muss ich nur machen, dass LiClipse den Interpreter als root ausführt, aber ich möchte LiClipse nicht als root starten. Ich möchte nur diesen Interpreter als root beim Debuggen verwenden. Wie kann ich das tun?

    
vicco 18.01.2016, 09:51
quelle

2 Antworten

2

In diesem Fall empfehle ich das Remote-Debugging. Sie können dann den Prozess so ausführen lassen, wie er für den Benutzer benötigt wird, und die IDE kann unabhängig als ein anderer Benutzer oder sogar auf einem anderen Server ausgeführt werden.

Wenn Sie PyDev in LiClipse verwenden, können Sie das Remote-Debugging konfigurieren, indem Sie die Dokumentation für das Remote-Debugging .

Die grundlegende Prämisse ist, dass Sie die pydev Debugger-Bibliothek zu Ihrem Python-Pfad hinzufügen und Folgendes enthalten, wo Sie einen Haltepunkt benötigen:

%Vor%

Dann konfigurieren Sie Ihre IDE mit einer pydev Instanz, die in diesem Fall auf diesem Server horcht ( 7788 ).

Wenn Sie Breakpoints aus der IDE verwenden möchten, können Sie das Argument suspend=False hinzufügen, und der Debugger wird nicht angehalten, bis er auf Ihre Breakpoints trifft.

    
Dag Høidahl 22.01.2016 09:51
quelle
2

In PyDev können Sie tatsächlich ein Shell-Skript auswählen, das wiederum das eigentliche Python ausführt, um den Lauf auszuführen ... dann können Sie Ihr Shell-Skript so konfigurieren, dass es zuerst eine spezielle Konfiguration vornimmt.

Ie .: Ihr Skript könnte eine Datei namens python_on_root.sh mit Inhalten wie:

sein %Vor%

Wählen Sie in der Interpreter-Konfiguration python_on_root.sh , um einen Interpreter zu erstellen, der als root ausgeführt wird.

Beachten Sie, dass das Gleiche auch für andere interessante Dinge getan werden könnte - z. B. das Ausführen in einem Andock-Container oder das Aktivieren einer Conda-Umgebung - Himmel ist das Limit;)

    
Fabio Zadrozny 22.01.2016 11:07
quelle

Tags und Links