Как я могу дать привилегии root для приложения?

Я пытался отправить приложение в Ubuntu Software Center, но оно было отклонено, потому что вам нужно было ввести пароль администратора, чтобы использовать его. Мне нужно предоставить root-права приложению, чтобы оно работало, поэтому я использовал sudo. Но они сказали, что я не могу использовать sudo в своем приложении. Как я могу дать ему привилегии root?

4
задан 31 May 2013 в 10:32

3 ответа

Вам необходимо использовать API PolicyKit для запроса повышения привилегий. В общем, вы должны делать это только тогда, когда это абсолютно необходимо, и не запускать приложение с повышенными привилегиями постоянно.

Стоит отметить, что если вам нужны только привилегии root при запуске, вы можете и должны запускать с правами root, но затем перейти к непривилегированному пользователю. Если вы работаете как пользовательская программа, это, вероятно, означает, что пользователь запустил программу; если это означает, что демон, такой как httpd или sshd, это, вероятно, означает невероятно заблокированного пользователя, который создан специально для вашей программы, чтобы работать под ним.

Кроме того, существуют графические интерфейсы для sudo, называемые gksudo и kdsudo для GNOME и KDE, соответственно. Если кто-то рекомендует использовать их, не . Имейте в виду, что эти программы устарели в пользу PolicyKit, по умолчанию не установлены и, вероятно, отклонят ваше приложение.

0
ответ дан 31 May 2013 в 10:32

Ваше приложение может быть не разрешено вообще. Согласно вики Ubuntu , Совет по обзору приложений будет отклонять приложения, которые касаются системных файлов:

Ваше приложение, похоже, касается системных файлов в ходе своей работы, однако мы не делаем этого. разрешить приложениям делать это в рамках политики безопасности для extras.ubuntu.com. Для этих приложений мы рекомендуем вам выполнить шаги на https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages для отправки вашего пакета в Debian или Ubuntu.

Приложение очистки будет касаться системных файлов.

Хотя это руководство применимо только к приложениям с открытым исходным кодом ( политика для проприетарных приложений не публикуется ), я полагаю, что аналогичные правила применяются к проприетарным приложениям.

Если ваше приложение с открытым исходным кодом, вы все равно можете загрузить его в Центр программного обеспечения, упаковав его и отправив в основные репозитории Ubuntu или Debian .

0
ответ дан 31 May 2013 в 10:32

Вам не нужен PolicyKit или что-то из этого. Просто измените владельца приложения и уровень разрешений:

sudo chown root:root /path/to/app
sudo chmod 4755 /path/to/app

Конечно, для выполнения этих команд вам потребуются привилегии root.

0
ответ дан 31 May 2013 в 10:32

Другие вопросы по тегам:

Похожие вопросы: