Я пишу кроссплатформенное приложение, которое я хотел бы запускать в операционных системах на основе Linux, таких как Fedora и Ubuntu. я использую QSerialPort
и работает нормально. я могу использовать QSerialPortInfo
получить список последовательных портов в системе и представить их пользователю, который может выбрать, какой из них он хочет использовать.
Однако в системах Linux по умолчанию пользователь не имеет прав доступа к последовательным портам. Я знаю, что неправильно запускать мое приложение с sudo
и я также знаю, что не удобно просить пользователя запустить chmod 666
на последовательный порт вручную каждый раз, когда приложение используется. Поэтому я оглянулся и мне кажется, что полькит — это ответ, однако я не смог найти ни одного примера, который бы показал мне, как это сделать.
Подскажите, пожалуйста, как использовать polkit (ранее известный как policykit) для запроса разрешения для моего приложения использовать определенный последовательный порт?
РЕДАКТИРОВАТЬ:
То, что я ищу, это способ:
Еще немного мыслей
Да я нашел официальные документы по полькиту, но они не очень ясно, как это сделать.
Общее мышление:
Не стоит пытаться сделать приложение «универсальным».
Я понимаю, что вы хотите, чтобы ваше программное обеспечение было простым в использовании, но для таких вещей (настройки системы) вы должны полагаться на системных упаковщиков.
В любое время polkit может быть заменен другим решением, или имя ресурса может быть изменено, или что-то еще, и ваше приложение больше не будет использоваться.
Я советую тебе:
Идея
Я этого не делал (но я много играл в прошлом с Пэм :-))
Итак, вот ссылки, которые я нашел и что понял:
Чтобы вы могли создать:
pkexec <path>/<pgm>
Вот несколько указателей:
Других решений пока нет …