繁体   English   中英

如何以编程方式在root用户拥有的文件夹中创建文件

[英]How to create a file programmatically in a folder owned by root user

我正在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,在继续进行该应用程序之前会提示输入管理密码。 同样,无论如何,我都可以弹出对话框询问密码并获得以根用户身份创建文件的凭据? 还有什么其他方法可以解决这种情况?

我刚刚找到了一种解决一般问题的方法,该问题要求获得根特权并执行某些操作。 Dio3调用system()并将密码传递到cmd级别。 我不知道一种“通过系统读取文件并使QT-API满意的方法”,但是您可以通过这种方式更改文件权限...但是每个人都对严重的文件执行此操作应该引起安全方面的噩梦:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM