簡體   English   中英

在python中使用導入的模塊會導致權限被拒絕錯誤

[英]Using a imported module in python result in permission denied error

我正在嘗試在用戶www-data下使用apache運行的python腳本中使用導入的模塊(pylightning)。

當以用戶www-data的身份通過apache運行時,腳本給出了權限錯誤:

File "/usr/local/lib/python3.4/dist-packages/lightning/lightning.py", line 69, in call
sock.connect(self.socket_path)
PermissionError: [Errno 13] Permission denied

為了解決這個問題,我進行了深入搜索,發現我需要以www-data用戶身份重新安裝該模塊:

sudo pip3 uninstall pylightning
sudo -H -u www-data pip3 install pylightning

該腳本仍可以作為常規用戶從CLI順利運行:

$python3 index.py
Content-Type: text/html


<html><body>
etc...

但是從apache(作為用戶www-data通過瀏覽器或從命令行)仍然給出相同的錯誤:

$sudo -u www-data python3 /var/www/html/index.py
Content-Type: text/html


<html><body>
Traceback (most recent call last):
File "/var/www/html/index.py", line 29, in <module>
print(rpc_interface.listpeers())
File "/usr/local/lib/python3.4/dist-packages/lightning/lightning.py", line 345, in listpeers
return self.call("listpeers", payload)
File "/usr/local/lib/python3.4/dist-packages/lightning/lightning.py", line 69, in call
sock.connect(self.socket_path)
PermissionError: [Errno 13] Permission denied

有人在這里有想法嗎?

腳本來源:

#!/usr/bin/env python3

import hashlib
from lightning.lightning import LightningRpc

rpc_interface = LightningRpc("/home/pi/.lightning/lightning-rpc")
print ("Content-Type: text/html\n\n");
print ("</body></html>asd");
print(rpc_interface.listpeers())

錯誤將在此行觸發:print(rpc_interface.listpeers())

驗證www數據用戶是否有權訪問/home/pi/.lightning/lightning-rpc (包括父目錄)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM