相关: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) –