2015-05-20 64 views
1

我需要調試一個我在Eclipse中用PyDev插件編寫的程序。但是我無法調試它,因爲Eclipse顯然沒有權限這麼做。 調試到達send()函數時,我總是得到以下錯誤。用PyDev作爲root運行Eclipse

socket.error: [Errno 1] Operation not permitted

使用gksudo運行Eclipse也不起作用。它打開,但它說編輯找不到。

Could not open the editor: No editor descriptor for id org.python.pydev.editor.PythonEditor

我該如何解決這個問題?

我無法發佈完整的代碼,它太長了。這是一種導致相同錯誤的故障。 Eclipse不允許執行send()函數。在命令行工具中使用sudo執行它。

from scapy.all import * 
from scapy.layers.inet import IP, UDP 

class SomeIP(Packet): 
    name = "SomeIP Packet" 
    fields_desc=[XShortField("X", 0x1000), 
       XShortField("Y", 0x1000)] 

SIP = SomeIP() 

packet = IP(src="129.168.101.164",dst="192.168.101.143")/UDP(sport=1000, dport=1000)/SIP 

send(packet, verbose=False) 

這是我得到的錯誤 - 第一行可以忽略。

WARNING: No route found for IPv6 destination :: (no default route?) 
Traceback (most recent call last): 
    File "scapy_test.py", line 19, in <module> 
    send(packet, verbose=False) 
    File "/usr/lib/python2.7/dist-packages/scapy/sendrecv.py", line 251, in send 
    __gen_send(conf.L3socket(*args, **kargs), x, inter=inter, loop=loop, count=count,verbose=verbose, realtime=realtime) 
    File "/usr/lib/python2.7/dist-packages/scapy/arch/linux.py", line 307, in __init__ 
    self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type)) 
    File "/usr/lib/python2.7/socket.py", line 187, in __init__ 
    _sock = _realsocket(family, type, proto) 
socket.error: [Errno 1] Operation not permitted 
+0

你確定這是關於權限嗎?我懷疑你需要以root身份運行IDE來調試任何東西。也許這個端口很忙?看看這個問題:http://stackoverflow.com/questions/11145463/ – konart

+0

是的,我。要在命令shell中運行程序,我需要將它作爲sudo執行。我試圖在答案中應用該解決方案,但我不使用「serversocket」。那麼我如何應用這個解決方案呢? – vicco

+0

你的代碼在這裏可能非常有幫助! –

回答

0

您可以使用其他端口號嗎?如果我正確理解你的代碼,你可以嘗試打開一個數字1000的端口。由於端口號最大爲1024只能被root使用,所以將端口號設置爲大於1024的值可能可以解決問題。

+0

不幸的是,使用更高的端口號也不起作用。 – vicco

相關問題