polkit은 javascript로 작성된 규칙 파일을 사용하여 구성됩니다.
사용자 정의 함수를 작성하여 에 인수로 전달합니다 polkit.addRule()
. polkit 작업이 수행되면 결과가 반환될 때까지 함수가 순차적으로 호출됩니다. (그렇지 않으면 기본값을 사용합니다.)
규칙 함수는 이름 action
과 subject
개체라는 두 개의 매개변수를 사용하여 호출됩니다.
이를 사용하여 subject.isInGroup("wheel")
사용자가 "wheel" 그룹에 속하는지 여부를 테스트할 수 있습니다.
기본적으로 polkit은 사용자가 "관리자"인지 여부에 대한 개념을 사용합니다. 이 개념의 의미는 polkit.addAdminRule()을 사용하여 다소 이상한 방식으로 수정될 수 있습니다. 기본값은 배포판에 따라 다릅니다. 일부 배포판에서는 관리자가 "wheel" 그룹에 배치됩니다. 다른 배포판에서는 "sudo" 그룹이 관리자로 간주됩니다.
"wheel" 또는 "sudo" 그룹을 하드코딩하는 대신 주제가 배포판의 관리자 그룹에 있는지 테스트하는 이식 가능한 방식으로 polkit.addRule()에 대한 함수를 작성할 수 있습니까?
답변1
이건 불가능 해.
이는 폴킷(polkit)이나 기타 다른 보안 정책에 있어서 매우 일반적인 유형의 보안 정책이 아닙니다. 많은 것들이 그룹이나 폴킷 비밀번호 프롬프트를 사용합니다.
나는 PackageKit이 이러한 유형의 전략을 사용한다는 것을 알았습니다. (관리자 그룹은 PackageKit을 컴파일할 때 배포본에 의해 할당된 것 같습니다.)