我用 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
。