[英]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.