Я пытался отправить приложение в Ubuntu Software Center, но оно было отклонено, потому что вам нужно было ввести пароль администратора, чтобы использовать его. Мне нужно предоставить root-права приложению, чтобы оно работало, поэтому я использовал sudo. Но они сказали, что я не могу использовать sudo в своем приложении. Как я могу дать ему привилегии root?
Вам необходимо использовать API PolicyKit
для запроса повышения привилегий. В общем, вы должны делать это только тогда, когда это абсолютно необходимо, и не запускать приложение с повышенными привилегиями постоянно.
Стоит отметить, что если вам нужны только привилегии root при запуске, вы можете и должны запускать с правами root, но затем перейти к непривилегированному пользователю. Если вы работаете как пользовательская программа, это, вероятно, означает, что пользователь запустил программу; если это означает, что демон, такой как httpd
или sshd
, это, вероятно, означает невероятно заблокированного пользователя, который создан специально для вашей программы, чтобы работать под ним.
Кроме того, существуют графические интерфейсы для sudo
, называемые gksudo
и kdsudo
для GNOME и KDE, соответственно. Если кто-то рекомендует использовать их, не . Имейте в виду, что эти программы устарели в пользу PolicyKit
, по умолчанию не установлены и, вероятно, отклонят ваше приложение.
Ваше приложение может быть не разрешено вообще. Согласно вики Ubuntu , Совет по обзору приложений будет отклонять приложения, которые касаются системных файлов:
Ваше приложение, похоже, касается системных файлов в ходе своей работы, однако мы не делаем этого. разрешить приложениям делать это в рамках политики безопасности для extras.ubuntu.com. Для этих приложений мы рекомендуем вам выполнить шаги на https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages для отправки вашего пакета в Debian или Ubuntu.
blockquote>Приложение очистки будет касаться системных файлов.
Хотя это руководство применимо только к приложениям с открытым исходным кодом ( политика для проприетарных приложений не публикуется ), я полагаю, что аналогичные правила применяются к проприетарным приложениям.
Если ваше приложение с открытым исходным кодом, вы все равно можете загрузить его в Центр программного обеспечения, упаковав его и отправив в основные репозитории Ubuntu или Debian .
Вам не нужен PolicyKit или что-то из этого. Просто измените владельца приложения и уровень разрешений:
sudo chown root:root /path/to/app
sudo chmod 4755 /path/to/app
Конечно, для выполнения этих команд вам потребуются привилегии root.