5.2. PC/SC 및 polkit 관련 문제 해결
pcsc-lite
패키지를 설치한 후 자동으로 시행되고 pcscd
데몬을 시작하면 사용자가 스마트 카드와 직접 상호 작용하지 않더라도 사용자 세션에서 인증을 요청할 수 있습니다. GNOME에는 다음과 같은 오류 메시지가 표시됩니다.
Authentication is required to access the PC/SC daemon
opensc
와 같은 스마트 카드 관련 다른 패키지를 설치할 때 시스템이 pcsc-lite
패키지를 종속성으로 설치할 수 있습니다.
시나리오가 스마트 카드와의 상호 작용을 필요로하지 않고 PC/SC 데몬에 대한 권한 부여 요청을 표시하지 않으려면 pcsc-lite
패키지를 제거할 수 있습니다. 필요한 최소 패키지를 유지하는 것은 어쨌든 좋은 보안 관행입니다.
스마트 카드를 사용하는 경우 /usr/share/polkit-1/actions/org.debian.pcsc-lite.policy
에서 시스템 제공 정책 파일에서 규칙을 확인하여 문제 해결을 시작합니다. /etc/polkit-1/rules.d/
디렉터리(예: 03-allow-pcscd.rules
)의 정책에 사용자 지정 규칙 파일을 추가할 수 있습니다. 규칙 파일은 JavaScript 구문을 사용하며 정책 파일은 XML 형식으로 되어 있습니다.
시스템이 표시하는 권한 부여 요청을 이해하려면 저널 로그를 확인합니다. 예를 들면 다음과 같습니다.
$ journalctl -b | grep pcsc
...
Process 3087 (user: 1001) is NOT authorized for action: access_pcsc
...
이전 로그 항목은 사용자가 정책에 의해 작업을 수행할 수 있는 권한이 없음을 의미합니다. /etc/polkit-1/rules.d/
에 해당 규칙을 추가하여 이 거부를 해결할 수 있습니다.
polkitd
유닛과 관련된 로그 항목을 검색할 수도 있습니다. 예를 들면 다음과 같습니다.
$ journalctl -u polkit
...
polkitd[NNN]: Error compiling script /etc/polkit-1/rules.d/00-debug-pcscd.rules
...
polkitd[NNN]: Operator of unix-session:c2 FAILED to authenticate to gain authorization for action org.debian.pcsc-lite.access_pcsc for unix-process:4800:14441 [/usr/libexec/gsd-smartcard] (owned by unix-user:group)
...
이전 출력에서 첫 번째 항목은 규칙 파일에 일부 구문 오류가 있음을 나타냅니다. 두 번째 항목은 사용자가 pcscd
에 대한 액세스 권한을 얻지 못했음을 의미합니다.
또한 짧은 스크립트로 PC/SC 프로토콜을 사용하는 모든 애플리케이션을 나열할 수 있습니다. 실행 가능한 파일(예: pcsc-apps.sh
)을 생성하고 다음 코드를 삽입합니다.
#!/bin/bash cd /proc for p in [0-9]* do if grep libpcsclite.so.1.0.0 $p/maps &> /dev/null then echo -n "process: " cat $p/cmdline echo " ($p)" fi done
스크립트를 root
로 실행합니다.
# ./pcsc-apps.sh
process: /usr/libexec/gsd-smartcard (3048)
enable-sync --auto-ssl-client-auth --enable-crashpad (4828)
...
추가 리소스
-
journalctl
,polkit(8)
,polkitd(8)
및pcscd(8)
메뉴얼 페이지.