我有一个GUI应用程序,需要使用超级用户权限调用守护程序(用Python编写)。我想这样做而不提示用户输入密码。
由于守护程序是一个脚本,因此我无法直接设置SUID位。我可以为此编写一个C包装程序,但是我不想重蹈覆辙,尤其是当我自己的一个错误可能导致系统的安全性受到严重损害时。
在这种情况下,我通常要做的是添加一行/etc/sudoers
,允许用户使用NOPASSWD指令以root用户身份执行守护程序而无需输入密码。从命令行可以正常工作。但是,当我从GUI进行此操作时,会pkexec
弹出一个对话框,询问用户密码。看来在Ubuntu上,sudo
从GUI进行的调用以某种方式被拦截pkexec
。
有没有解决的办法?我真的宁愿不必处理setuid脚本的麻烦。
您说什么应用程序?
—
RaduRădeanu13年
任何GUI应用程序。当GUI应用程序尝试运行时
—
Chinmay Kanchi 2013年
sudo somecommand
,pkexec
无论是否存在允许程序执行的sudoers策略,弹出的对话框都是密码对话框。