我正在通过 libkmod ( https://github.com/profusion/kmod ) 从我的应用程序中加载一个 Linux 内核模块,并且一切正常(因为模块在我想要的时候被加载和卸载),但为了实现这一点,我需要以 root 身份(或特权用户,例如 sudoers)运行我的整个程序。我希望能够以普通用户身份加载应用程序,然后询问root用户的密码(用户在 sudoers 中),setuid(0);
只是为了加载模块然后恢复旧的 uid。
我的问题是:如何通过某种 UI 对话框(当我尝试通过 KDE 的控制面板更改某些内容时出现的那个)询问root用户的密码?
问候
编辑:我不会接受像system("kdesu/gksu my_app")
orpopen()
和 family 这样的方法。我正在寻找一种调用密码提示的编程方式。我也不会接受特定于 DE 的答案(请参阅 kdesu 和 gksu)。我正在寻找适用于每个符合 XDG 的 DE 的东西。最后,不需要密码提示存在。我可以在 Qt 中创建一个简单的对话框并询问密码,然后用它来调用任何接受它的函数,比如setuid('password', 0)
.