当我执行以下语句时,我是Python的新手并且不断获得相同的权限被拒绝错误:
>>> os.chdir('/root')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 13] Permission denied: '/root'
答案 0 :(得分:1)
您没有使用适当的权限运行程序。
以root用户身份运行程序,这将授予您相应的权限。
您可以使用
执行此操作sudo python script.py
如果你没有sudo
su - root -c "python script.py"
了解更多信息http://www.cyberciti.biz/open-source/command-line-hacks/linux-run-command-as-different-user/
答案 1 :(得分:1)
这意味着设置/root
目录的权限,以便非root用户无法访问它。
所以这不是程序错误,也不是Python错误,而是系统配置问题。人们可以辩论限制这种权限的必要性。在我的FreeBSD系统上,您可以阅读和访问/root
;反正几乎没有任何文件。但也许它包含您系统上的敏感数据或程序。
所以你基本上有两个选项;
sudo
或/root
上的权限。其中哪两个是最好的&#34;取决于你想做什么以及根目录中的内容。
但由于root
用户可以访问所有内容,因此在root
运行时可能会意外造成大量损失。
因此,一般情况下,建议不要以root身份执行脚本,除非绝对必要。
import os
if os.access('/root', os.R_OK|os.X_OK):
os.chdir('/root')
# whatever else you were going to do
else:
print 'Insufficient access to /root'