Este artigo estouro de pilha parece responder à sua pergunta.
Veja a segunda resposta. A resposta aceita é:
Verifique para qual grupo os arquivos do dispositivo pertencem. Por exemplo, aqui eu recebo:
$ ls -l /dev/input/ ... crw-rw---- 1 root plugdev 13, 64 Nov 4 18:01 event0 crw-rw---- 1 root plugdev 13, 65 Nov 4 18:01 event1 crw-rw---- 1 root plugdev 13, 66 Nov 4 18:01 event2 crw-rw---- 1 root plugdev 13, 67 Nov 4 18:01 event3 crw-rw---- 1 root plugdev 13, 68 Nov 4 18:01 event4 ...
O usuário que está executando seu programa precisa estar no grupo plugdev deste sistema. Algo semelhante é provavelmente o caso do seu sistema.
Se você está pedindo uma maneira de contornar isso (ler ou escrever no dispositivo sem estar no grupo), então não. Isso obviamente derrotaria o propósito de segurança, embora os grupos de usuários.
Uma alternativa para ler os dispositivos de evento diretamente seria usar uma API de espaço de usuário apropriada. Por exemplo, para ler o teclado, você usaria ncurses e, para ler o mouse, usaria o GPM.