相關:Python multiprocessing: Permission denied你如何以'root'的身份臨時運行你的代碼?
我想用Python的multiprocessing.Pool
import multiprocessing as mp
pool = mp.Pool(3)
for i in range(num_to_run):
pool.apply_async(popen_wrapper, args=(i,), callback=log_result)
我得到OSERROR
File "/usr/local/lib/python2.6/multiprocessing/__init__.py", line 178, in RLock
return RLock()
File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 142, in __init__
SemLock.__init__(self, RECURSIVE_MUTEX, 1, 1)
File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 49, in __init__
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 13] Permission denied
我在相關問題閱讀,它是由於沒有R/W到/ dev/shm
除了更改/dev/shm
的權限,是否有一種方法可以在代碼中以root身份運行?
我最初以爲你可以不喜歡os.umask()
但它沒有工作
編輯(改寫的問題):
- 假設用戶名的有目錄中的
- R/W訪問您是用戶B,您的程序需要訪問目錄A.您如何以用戶A的身份運行程序?
你不應該試圖讓你的代碼以root身份運行。解決方案是使用root訪問權限根據您鏈接的問題永久修復您的系統。 –
@JohnZwinck你能回答這個問題的編輯部分嗎?我只是在想一個案例不涉及根 – ealeon
相關(?):[在Python中刪除根權限](http://stackoverflow.com/questions/2699907/dropping-root-permissions-in-python) –