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

I'm not able to get root permission within my python program

我是 Python 的新手,当我执行以下语句时,不断收到相同的 permission denied 错误:

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

您不是 运行 具有相应权限的程序。

运行 以 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/

这意味着 /root 目录的权限设置为非 root 用户无法访问它。

所以这不是真正的程序错误,也不是Python错误,而是系统配置问题。人们可以争论限制这样的权限的必要性。在我的 FreeBSD 系统上,您可以阅读和访问 /root;反正那里几乎没有任何文件。但它可能包含您系统上的敏感数据或程序。

所以你基本上有两个选项;

  • 使用sudo
  • 更改 /root.
  • 的权限

两者中的哪一个"best"取决于你想做什么以及根目录中有什么。

但是由于 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'