2017-06-01 200 views
3

我對python,linux的RPI和scapy是全新的。我正在嘗試使用scapy發送一些數據包。
命令行(只有當超級用戶權限給予Scapy的)
PermissionError:[Errno 1]不允許操作

send(IP(dst="1.2.3.4")/ICMP()) 

這完美的作品,在Python腳本運行時。

from scapy.all import * 
p=send(IP(dst="1.2.3.4")/ICMP()) 

拋出Error

Traceback (most recent call last): 
    File "<pyshell#19>", line 1, in <module> 
    send(IP(dst="1.2.3.4")/ICMP()) 
    File "/usr/local/lib/python3.4/dist-packages/scapy/sendrecv.py",line 255, in send 
    __gen_send(conf.L3socket(*args, **kargs), x, inter=inter, loop=loop, count=count,verbose=verbose, realtime=realtime) 
    File "/usr/local/lib/python3.4/dist-packages/scapy/arch/linux.py", line 326, in __init__ 
    self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type)) 
    File "/usr/lib/python3.4/socket.py", line 123, in __init__ 
    _socket.socket.__init__(self, family, type, proto, fileno) 
PermissionError: [Errno 1] Operation not permitted<br> 

我試圖解決這個問題,但不能,我是新來的環境,因此不知道多少。就我的搜索來說,這個問題與套接字有關。但我仍然需要一些簡單的解釋來理解。

回答

3

這意味着您需要使用sudo/admin權限啓動腳本。

+0

我知道這個,但如何給腳本內的管理員權限,它在殼內工作正常嗎? –

+0

這取決於你的操作系統:如果你在* nix上,在Windows上使用'sudo python script.py',你可以啓動一個cmd作爲管理員(資源管理器),然後啓動你的文件 – Cukic0d

+0

我不想啓動我的文件CLI(按照Linux的方式),但我想通過shell直接運行腳本。如果我嘗試在命令行中使用'sudo'來運行它,它工作正常,但是每當我嘗試在python shell中直接運行它時,我都無法執行它。我其實不知道,如何在python腳本中給予admin或sudo權限。 –