2016-08-04 12 views
1

저는 Fedora 및 Ubuntu와 같은 Linux 기반 운영 체제에서 실행하고 싶은 크로스 플랫폼 응용 프로그램을 작성하고 있습니다. 내가 QSerialPort을 사용하고 잘 작동합니다. QSerialPortInfo을 사용하여 시스템의 직렬 포트 목록을 가져와 사용할 포트를 선택할 수있는 사용자에게 제공 할 수 있습니다.Linux에서 polkit으로 직렬 포트 권한을 요청하는 방법은 무엇입니까?

그러나 Linux 시스템의 경우 기본적으로 사용자에게는 직렬 포트에 대한 권한이 없습니다. sudo으로 내 응용 프로그램을 실행하는 것은 잘못되었으며, 앱을 사용할 때마다 수동으로 chmod 666을 직렬 포트에서 실행하도록 사용자에게 묻는 것은 사용자에게 친숙하지 않음을 알고 있습니다. 그래서 주위를 둘러 보니 폴킷이 답 인 것처럼 보였습니다. 그러나 어떻게해야하는지 모범을 찾을 수 없었습니다.

내 응용 프로그램이 특정 직렬 포트를 사용할 수있는 권한을 요청하기 위해 polkit (이전의 policykit)을 사용하는 방법을 알려주십시오.

편집 :

은 내가 무엇을 찾고 있어요하는 방법이다 : 사용자가 대화 상자를 팝업, 시리얼 포트

  • 그렇지 않은 경우에 대한 액세스 권한이있는 경우

    1. 확인하는 것이 권한 (예 : Gnome 설정 앱)을 묻습니다.
    2. 사용자가 성공적으로 인증 한 경우 직렬 포트를 앱에서 사용할 수 있도록 설정합니다.

    좀 더 생각

    • 내가
    • 내가 스크립트
    • 을 실행하는 사용자에게 물어보고 싶은하지 않는 모든 직렬 포트에 perimission을 제공하는 udev에 규칙을 설정하지 않으 내 앱이 수퍼 유저로 실행되는 것을 원하지 않는다.
    • 루트 권한으로 수행되는 다른 작업 (직렬 포트 액세스)을 원하지 않는다.

    official polkit docs을 찾았지만이를 수행하는 방법에 대해서는 분명하지 않습니다.

  • +1

    uucp/dialout (또는 revalent) 그룹에 사용자를 추가하는 방법은 어떻습니까? –

    +0

    @ Calvin 나는 사용자에게 그렇게하라고하고 싶지 않습니다. – Venemo

    답변

    1

    일반 사고 :


    그것은 응용 프로그램 "보편적 인"만들려고 노력하는 것은 좋은 생각이 아니다.

    귀하의 소프트웨어를 사용하기 쉽도록하기를 원하지만이 (시스템 설정)과 같은 경우에는 시스템 패키지를 사용해야합니다.

    언제든지 polkit을 다른 솔루션으로 대체하거나 ressource의 이름을 변경하거나 응용 프로그램을 더 이상 사용할 수 없게 될 수 있습니다.

    나는 당신을 조언 :

    • 대부분에서, 일반 스크립트를 통해 필요한 개조하면 되겠 어를 할 것입니다 배포 패키지를 만들기 위해, 비밀번호
    • 이상을 요구 woulde 폴킷 창을 인상

    나는 그것을하지 않았다


    생각 (하지만 난 많이 연주

    • 폴킷 할 sudo를 같은 방식으로 작동합니다 : 그것은 당신이 다른 ID로 프로그램을 실행할 수 있도록 (그래서 여기

      팸 :-)와 과거)에 내가 찾은 내가 이해 어떤 링크가 있습니다 explanations)

    • 그래서 당신은 그래서 당신이 만들 수있는 일련

    충분히 잘 접근을 가진 중 하나의 루트 또는로 프로그램을 실행할 수 있습니다

    • 좋은 신원을 가진 프로그램을 실행할 수있는 설치 스크립트 (예 : example). 이렇게하면 루트 암호를 한 번 (polkit 정책 작성을위한 설치시) 한 번 물어보고 사용자가 프로그램을 실행하려고 할 때마다 묻습니다. 이 ID는 R/W 액세스 권한이있는 한 루트 또는 임의의 ID 일 수 있습니다.
    • 정책 파일 : 당신이 중 하나를 1 또는 documentation
    • 같은 것을 포함하는 프로그램 런칭을위한 스크립트를 볼 수 있습니다 :

      • 관리자 가이드 : 여기 pkexec <path>/<pgm>

      몇 가지 포인터 폴킷에 : 3 (나는 데비안 사용자이지만 나는 그들의 문서를 좋아한다)

    • 공식 문서 : https://www.freedesktop.org/software/polkit/docs/master/index.html
    +0

    '최대로 비밀번호를 요구하는 폴킷 창을 띄우십시오. '- 어떻게 할 수 있는지 보여 줄 수 있습니까? – Venemo

    +0

    내 업데이트 된 "답변"을보십시오. – lemmel

    +0

    미안하지만, 지금까지 내가 모르는 것을 말하지 않았다. 나는 내 질문에 이미 polkit 문서를 찾았지만 실제로는 본 적이 없으며 문서는 매우 비밀 스럽다고 말했다. – Venemo