2

我需要使用 qt 小部件应用程序在根目录中创建目录。

void Home::on_pushButton_clicked()
{
    system("mkdir /bin/mydir");
}

但是,如何在 /bin 文件夹中创建文件夹之前获得 root 权限

4

3 回答 3

1

您可以在编程中使用 pkexec 命令获取 root 密码,如下所示:

 void Home::on_pushButton_clicked()
 {
    system("pkexec mkdir /bin/myDir");
 }

或者您可以尝试使用QProcess类,但是出于您的目的,pkexec就足够了。但是在这种模式下,您必须手动输入密码,但是如果您想在不手动输入密码的情况下获得root权限,则可以在代码中输入密码那么你可以考虑下面的代码:

QProcess process;
process.start("echo your_password | sudo -S mkdir /bin/myDir");
于 2018-01-06T12:35:23.320 回答
0

如果您希望您的应用程序访问某些需要 root 权限的资源,您必须以 root 身份运行该应用程序。例如

sudo your_application_name

或以 root 身份登录,然后运行该应用程序。

于 2013-11-07T16:14:20.483 回答
0

程序启动后无法获得root权限;只允许(暂时或最终)放弃特权。

最好的方法通常是调用诸如gksudoksudo之类的程序,系统将以 root 身份调用它们,此时它们会暂时放弃 root 权限,询问用户是否同意,关闭他们与 GUI 系统的连接,重新获得 root 权限和执行动作。

于 2013-11-07T16:04:29.057 回答