/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을 사용합니다.