![使用 Python 自定义 GNOME 小程序需要具有 root 权限](https://linux22.com/image/1104103/%E4%BD%BF%E7%94%A8%20Python%20%E8%87%AA%E5%AE%9A%E4%B9%89%20GNOME%20%E5%B0%8F%E7%A8%8B%E5%BA%8F%E9%9C%80%E8%A6%81%E5%85%B7%E6%9C%89%20root%20%E6%9D%83%E9%99%90.png)
我用 Python 编写了一个自定义 GNOME 面板小程序,需要写入一些 root 拥有的文件。有没有办法让它以 root 权限启动而不使用 suid?
答案1
答案2
更好的解决方案:不要以 root 权限运行整个小程序。将一切可能的东西放在以普通用户权限运行的小程序上。创建修改必要文件的单独程序,然后通过sudo
(或 suid)运行它。
对于 sudoers 配置,运行visudo
。尝试类似
yourusername ALL=(ALL) NOPASSWD: /usr/local/bin/your_command.py
允许以 root 权限运行特定命令。
另一种方法:向那些根拥有的文件添加文件 acl,以允许用户更改。
man setfacl
有关详细信息,请参阅(来自包acl
)。
答案3
您应该将需要 root 访问权限的程序分离到一个单独的 python 程序中,然后使用 启动该程序gksudo
。