2012-04-29 36 views
2

我正在Qt中開發應用程序。我需要在位置/ usr/share/applications中創建一個文件。以下是我的代碼如何以編程方式在root用戶擁有的文件夾中創建文件

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用戶身份創建文件?還有哪些方法可以解決這種情況?

回答

0

我剛剛發現了一個尋求根權限和做某事的一般問題的方法。 Dio3 calls system() and passes the password to the cmd-level.。 我不知道如何通過系統讀取文件並使QT-API快樂,但是您可以通過這種方式更改文件權限......但是每個人都認爲這對嚴重文件應該有安全噩夢:)

+0

你也可以使用並適當地配置'sudo'或'super' –

相關問題