systemd 서비스에서 로드키를 사용하여 키 매핑을 변경할 수 없습니다.

systemd 서비스에서 로드키를 사용하여 키 매핑을 변경할 수 없습니다.

내 Packard-Bell 노트북 키보드에는 탐색 화살표와 함께 그룹화되어 기존의 역 T 모양 대신 2행 x 3열 하위 블록을 형성하는 2개의 비표준 키가 있습니다. 물론 기본 Linux 커널은 이러한 키를 인식하지 못합니다.

setkeycodesroot 명령을 사용하여 활성화할 수 있습니다 loadkeys.

수동 시작 명령을 피하기 위해 시작 중에 키보드를 구성하는 systemd 장치(.service 파일)를 설계했습니다.

이 방법은 최근에 아주 오래된 Fedora 버전에서 Fedora 35로 노트북을 업그레이드할 때까지 잘 작동했습니다.

이제 수정하려는 모든 맵에서 "키맵 x: 권한이 거부되었습니다"라는 메시지가 나타납니다. 이유를 모르겠습니다.

내가 틀리지 않는 한 시스템의 시스템 서비스에서 시작된 모든 명령은 루트로 실행됩니다. 따라서 로드키는 모든 파일에 액세스할 수 있어야 하며("해당 파일 또는 디렉터리 없음" 오류를 수정하기 위해 매핑 파일을 사용자 디렉터리에서 /etc로 이동해야 했습니다) 콘솔 매핑을 변경할 수 있어야 합니다.

가능한 경쟁 조건이 걱정되어 multi-user.target에 도달한 후(일정 시간이 아닌) 서비스가 시작되도록 종속성을 변경했으며 각 파티션이 마운트되어 준비되었다고 확신합니다. 그러나 이것은 오류를 해결하지 못했습니다.

id내 서비스가 권한이 없는 일부 사용자 하에서 실행되고 있는 것으로 의심되지만 어느 사용자인지 추측할 수 없습니다(명령이 셸에서 해석되지 않기 때문에 또는 명령 을 사용할 수 없으며 whoami나중에 출력을 일부 파일로 리디렉션할 수 없습니다). 사용 ).

Man은 해당 단위가 이미 루트에 의해 소유되어 있기 때문에 User= 또는 Group=을 추가하는 것은 쓸모가 없다고 말합니다.

업데이트: 서비스가 root.키맵 x: 권한이 거부되었습니다.무의미한. via 대신 루트로 직접 명령을 실행하면 제대로 systemctl작동 loadkeys합니다.

그래서 뭐? 나에게 방향을 알려 주실 수 있나요?

답변1

사용자:

$ localectl set-keymap 'YourKeyboardMapName" 

selinux라면,

뿌리:

# /sbin/restorecon -v /.hcwd  (to avoid selinux complaints)

관련 정보