저는 Fedora 및 Ubuntu와 같은 Linux 기반 운영 체제에서 실행하고 싶은 크로스 플랫폼 응용 프로그램을 작성하고 있습니다. 내가 QSerialPort
을 사용하고 잘 작동합니다. QSerialPortInfo
을 사용하여 시스템의 직렬 포트 목록을 가져와 사용할 포트를 선택할 수있는 사용자에게 제공 할 수 있습니다.Linux에서 polkit으로 직렬 포트 권한을 요청하는 방법은 무엇입니까?
그러나 Linux 시스템의 경우 기본적으로 사용자에게는 직렬 포트에 대한 권한이 없습니다. sudo
으로 내 응용 프로그램을 실행하는 것은 잘못되었으며, 앱을 사용할 때마다 수동으로 chmod 666
을 직렬 포트에서 실행하도록 사용자에게 묻는 것은 사용자에게 친숙하지 않음을 알고 있습니다. 그래서 주위를 둘러 보니 폴킷이 답 인 것처럼 보였습니다. 그러나 어떻게해야하는지 모범을 찾을 수 없었습니다.
내 응용 프로그램이 특정 직렬 포트를 사용할 수있는 권한을 요청하기 위해 polkit (이전의 policykit)을 사용하는 방법을 알려주십시오.
편집 :
은 내가 무엇을 찾고 있어요하는 방법이다 : 사용자가 대화 상자를 팝업, 시리얼 포트
- 확인하는 것이 권한 (예 : Gnome 설정 앱)을 묻습니다.
- 사용자가 성공적으로 인증 한 경우 직렬 포트를 앱에서 사용할 수 있도록 설정합니다.
좀 더 생각
- 내가
- 내가 스크립트
- 을 실행하는 사용자에게 물어보고 싶은하지 않는 모든 직렬 포트에 perimission을 제공하는 udev에 규칙을 설정하지 않으 내 앱이 수퍼 유저로 실행되는 것을 원하지 않는다.
- 루트 권한으로 수행되는 다른 작업 (직렬 포트 액세스)을 원하지 않는다.
예 official polkit docs을 찾았지만이를 수행하는 방법에 대해서는 분명하지 않습니다.
uucp/dialout (또는 revalent) 그룹에 사용자를 추가하는 방법은 어떻습니까? –
@ Calvin 나는 사용자에게 그렇게하라고하고 싶지 않습니다. – Venemo