我无法在我的python程序中获得root权限

时间:2015-08-18 07:34:31

标签: python sudo

当我执行以下语句时,我是Python的新手并且不断获得相同的权限被拒绝错误:

>>> os.chdir('/root')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 13] Permission denied: '/root'

2 个答案:

答案 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'