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