簡體   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