如何以编程方式启动程序并在Linux上以root权限运行程序?

时间:2016-02-10 12:49:21

标签: c++ c linux root administrator

我正在处理安装程序,该程序可能会要求用户执行管理操作(例如,写入全局程序文件目录和更改注册表项)。

Windows allows using runas和OS X有AuthorizationExecuteWithPrivileges。 Linux似乎没有像这样的功能。

我考虑过调用sudo来实现此功能,但这有很多缺点:

  • 默认情况下并不总是安装。
  • 即使安装了它,如果当前用户不属于' sudoers'基。
  • sudo版本之间的密码提示有所不同(有时p中的password:大写)。
  • sudo输出受系统语言的影响。

我可以克服最后两项,但前两项是一种表现。我想知道 - 有没有其他常见的方法来实现这个Linux?

1 个答案:

答案 0 :(得分:0)

How to programmatically gain root privileges?回答状态时,这通常在Linux中通过使用粘滞位并调用setuid / setgid来完成。通常,一种可能性是最初在root下运行该进程,然后根据需要通过setuid / setgid更改权限。