k
15 января 2017 г. 17:25

Получение прав root из запущеной программы Qt

Qt, Linux, root

Есть приложение, написаное на qt, которому могут понадобиться root права при выполнение некоторых действий. Так вот, как это организовать?
P.S Нужно примерно как на картинке (при нажатии на кнопку "Разблокировать" открывается окно для ввода пароля)

example.png
1

Вам это нравится? Поделитесь в социальных сетях!

2
Evgenii Legotckoi
  • 15 января 2017 г. 18:48
  • Ответ был помечен как решение.

Qt не предоставляет функционала по запросу root прав во время выполнения программы.

Поэтому нужно использовать платформозависимый функционал, для Linux это будет выглядеть так:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <stdio.h>
#include <string.h>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    system("gksudo mkdir testdir");
}

То есть у меня имеется кнопка в главном окне приложения, которая была создана через графический дизайнер и по нажатию на неё запрашиваются права доступа на выполнение создания каталога testdir через приложение gksudo, вместо использования sudo.

    k
    • 15 января 2017 г. 19:01

    Спасибо)

      Комментарии

      Только авторизованные пользователи могут публиковать комментарии.
      Пожалуйста, авторизуйтесь или зарегистрируйтесь
      • Последние комментарии
      • IscanderChe
        12 апреля 2025 г. 17:12
        Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
      • AK
        1 апреля 2025 г. 11:41
        Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
      • Evgenii Legotckoi
        9 марта 2025 г. 21:02
        К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
      • VP
        9 марта 2025 г. 16:14
        Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
      • ИМ
        22 ноября 2024 г. 21:51
        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…