所以我试图读取一个需要“sudo”的配置文件,但我试图仅使用 python 而不使用终端来读取其内容。当我使用下面的代码时,出现如下错误:
with open('/etc/motion/motion.conf','rb') as file:
data = file.readlines()
IOError: [Errno 13] Permission denied: '/etc/motion/motion.conf'
有什么我可以尝试用 python 严格读取文件内容吗?
最佳答案
您应该从 shell 脚本调用您的 python 文件,将该脚本的所有者更改为 root,然后设置该脚本的 SUID 位。用户将能够运行该脚本,但该脚本的所有者将是 root:
- http://www.codecoffee.com/tipsforlinux/articles/028.html
- http://www.linuxnix.com/2011/12/suid-set-suid-linuxunix.html
- 等等
当然,您必须意识到此类事情可能涉及的安全问题,但对于本地使用,用一个简单的脚本做一件事,这是可以的。
关于python - 如何在linux中严格使用python以管理员权限读取二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32679169/