【问题标题】:How to create a file programmatically in a folder owned by root user如何以编程方式在 root 用户拥有的文件夹中创建文件
【发布时间】:2012-05-09 13:21:21
【问题描述】:

我正在用 Qt 开发一个应用程序。我需要在 /usr/share/applications 位置创建一个文件。以下是我的代码

  QDir::setCurrent("/usr/share/applications");
  QFile launcherFile;
  launcherFile.setFileName("aptana.desktop");
  int status = launcherFile.open(QIODevice::WriteOnly | QIODevice::Text);
  QTextStream stream(&launcherFile);
  stream<<"Create file";
  launcherFile.close();

调试时我没有收到任何错误,但文件也没有创建。我认为这是一个权限问题,因为我登录的用户没有访问此文件夹的权限。我已经看到其他应用程序(例如 Synaptic Manager)在继续访问应用程序之前提示输入管理密码。同样,无论如何我可以弹出对话框询问密码并获取凭据以以root用户身份创建文件?还有什么其他方法可以解决这种情况?

【问题讨论】:

    标签: c++ linux qt file-permissions qfile


    【解决方案1】:

    我刚刚找到了一种解决一般问题的方法,即请求 root 权限并做某事。 Dio3 calls system() and passes the password to the cmd-level.。 我不知道“通过系统读取文件并使 QT-API 快乐”的方法,但是您可以通过这种方式更改文件权限......但是每个人都对严重文件执行此操作应该有安全噩梦 :)

    【讨论】:

    • 您也可以适当地使用和配置sudosuper
    猜你喜欢
    • 2020-02-21
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多