루트 권한 없이 /dev/input 장치에서 읽기

루트 권한 없이 /dev/input 장치에서 읽기

/dev/input루트 권한 없이 장치에서 데이터를 읽을 수 있는 방법이 있습니까 ?

제 경우에는 Python 라이브러리를 사용하고 싶습니다.evdev여러 키보드에서 읽기(그래서 어떤 키보드에서 신호가 나오는지 알 수 있음) 간단히 사용하는 것은 stdin불가능합니다.

항상 sudo 권한으로 프로그램을 호출해야 하는 것은 그리 우아하지 않습니다. 예를 들어, 디렉토리를 chmod할 수 있습니까 /dev/input(제 경우에는 보안이 중요하지 않습니다)?

아니면 입력 장치에서 직접 읽을 수 있는 또 다른 방법이 있습니까?

답변1

이것스택 오버플로이 기사가 귀하의 질문에 대한 답변인 것 같습니다.

두 번째 답변을 참조하세요. 허용되는 답변은 다음과 같습니다.

장치 파일이 어느 그룹에 속해 있는지 확인하세요. 예를 들어, 다음과 같은 결과를 얻습니다.

$ ls -l /dev/입력/
...
crw-rw---- 1 rootplugdev 13, 64 11월 4일 18:01 event0
crw-rw---- 1 rootplugdev 13, 65 11월 4일 18:01 이벤트 1
crw-rw---- 1 rootplugdev 13, 66 11월 4일 18:01 이벤트 2
crw-rw---- 1 rootplugdev 13, 67 11월 4일 18:01 event3
crw-rw---- 1 rootplugdev 13, 68 11월 4일 18:01 event4
...

프로그램을 실행하는 사용자는 시스템의 Plugdev 그룹에 있어야 합니다. 시스템에도 비슷한 상황이 있을 수 있습니다.

이를 우회할 수 있는 방법(그룹에 가입하지 않고 장치에 읽기 또는 쓰기)을 찾고 있다면 아니요. 이는 분명히 사용자 그룹 보안의 목적을 무너뜨리게 됩니다.

이벤트 장치를 직접 읽는 또 다른 방법은 적절한 사용자 공간 API를 사용하는 것입니다. 예를 들어, 키보드를 읽으려면 ncurses를 사용하고, 마우스를 읽으려면 GPM을 사용합니다.

관련 정보