Название: Запуск SUDO из-под обычного пользователя Отправлено: Alex_ryabis от Февраль 15, 2023, 19:37 Всех приветствую!
Приложение на Qt 5.11, ОС AstraLinux. Необходимо выполнить некоторую консольную команду от имени суперпользователя, при этом само приложение запущено не из-под "root". Подразумевается, что необходимо по-ходу выполнения программы вводить пароль суперпользователя. Вот пример моего кода. Код: QProcess *proc = new QProcess(this); Во-первых. Как сделать возможность запуска SUDO-команды из-под обычного пользователя? Во-вторых. Как организовать ввод пароля через стандартный GUI-диалог операционной системы? (gksu не работает) Название: Re: Запуск SUDO из-под обычного пользователя Отправлено: sergek от Февраль 15, 2023, 21:58 Во-первых, "обычный пользователь" должен быть включен в группу sudo.
Вот работающий пример (password - пароль пользователя): Код
Название: Re: Запуск SUDO из-под обычного пользователя Отправлено: Alex_ryabis от Февраль 16, 2023, 21:26 Спасибо за помощь, но это в Астре не помогло.
Нашел документацию, там вот что написано: Цитировать 5.11. Приложения и права администратора Так что можно не включать пользователя в группу sudo. По крайней мере в ОС Astra Linux Common Edition.Большинство утилит настройки требуют привилегий суперпользователя. Есть ряд способов предоставления привилегий: от sudo и членства в группах до PolicyKit. Решение этой задачи возможно с использованием программы fly-su. Программа, предполагающая действия администратора, обязательно должна информировать пользователя о невозможности выполнения каких-либо функций без соответствующей авторизации и, по возможности, давать пользователю способ выполнить такую авторизацию, например, с помощью рекомендуемой fly-su. В итоге, код ниже позволяет вывести окно ввода пароля суперпользователя для выполнения команды с правами администратора. Код: QProcess *proc = new QProcess(this); Название: Re: Запуск SUDO из-под обычного пользователя Отправлено: qate от Февраль 16, 2023, 23:31 Так что можно не включать пользователя в группу sudo. По крайней мере в ОС Astra Linux Common Edition. уверен ? покажи id этого пользователя |