У меня есть приложение пользовательского интерфейса (использует GTK) для Linux, которое требуется для запуска от имени пользователя root (оно читает и пишет /dev/sd*).
Вместо того, чтобы требовать от пользователя открытия корневой оболочки илииспользовать «sudo» вручную каждый раз, когда он запускает мое приложение, мне интересно, может ли приложение использовать какой-либо API, предоставляемый ОС, для получения прав root.(Примечание: gtk-приложения не могут использовать режим "setuid", поэтому здесь это не вариант.)
Преимущество здесь заключается в более простом рабочем процессе: пользователь может из своей учетной записи по умолчанию дважды щелкнуть мойприложение с рабочего стола вместо того, чтобы открывать корневой терминал и запускать его оттуда.
Я спрашиваю об этом, потому что OS X предлагает именно это: приложение может попросить ОС запустить исполняемый файл с правами root - ОС(а не приложение) затем просит пользователя ввести свои учетные данные, проверяет их и затем запускает цель по желанию.
Интересно, есть ли что-то подобное для Linux (например, Ubuntu)
Уточнение:
Итак, после намека на PolicyKit, я задаюсь вопросом, могу ли я использовать это для получения правого доступа к "/ dev / sd ..."блок устройства.Я нахожу документ довольно сложным для понимания, поэтому я решил сначала спросить, возможно ли это вообще, прежде чем часами пытаться понять его напрасно.
Обновление:
Приложение представляет собой удаленно управляемый инструмент восстановления диска для неопытного пользователя Linux, и у этих новичков Linux не будет большого понимания использования sudo или даже изменения членства в группах своих пользователей, особенно если ихдиск только начал капризничать, и они волнуются.Вот почему я ищу решение, которое избегает подобных технических моментов.