2012-04-29 8 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

Я только что нашел подход к общей проблеме прошения привилегий root и выполнения чего-то. Dio3 calls system() and passes the password to the cmd-level.. Я не знаю, как «прочитать файл через систему и сделать QT-API счастливым, но вы можете изменить права доступа к файлам таким образом ... но каждый должен сделать это, чтобы серьезные файлы должны были иметь кошмары безопасности :)

+0

Вы также можете использовать и настроить соответственно 'sudo' или' super' –

 Смежные вопросы

  • Нет связанных вопросов^_^