Lire à partir des périphériques / dev / input sans privilèges root

Existe-t-il un moyen de lire des périphériques /dev/input , sans avoir besoin de privilèges root?

Dans mon cas, j'aimerais utiliser la librairie Python evdev pour lire à partir de plusieurs keyboards (pour que je sache de quel keyboard provient le signal), donc simplement utiliser stdin n'est pas possible.

Toujours avoir à appeler le programme avec sudo-privilèges ne serait pas trop élégant – est-il par exemple possible de chmod le /dev/input (la security n'a pas d'importance dans mon cas)?

Ou, encore mieux, existe-t-il une autre façon de lire directement à partir des périphériques d'input?

Cet article de débordement de stack semble répondre à votre question.

Voir la deuxième réponse. La réponse acceptée est la suivante:

Vérifiez pour voir à quel groupe appartiennent les files du périphérique. Par exemple, voici:

 $ ls -l / dev / input /
 ...
 crw-rw ---- 1 root plugdev 13, 64 Nov 4 18:01 événement0
 crw-rw ---- 1 root plugdev 13, 65 Nov 4 18:01 événement1
 crw-rw ---- 1 root plugdev 13, 66 Nov 4 18:01 événement2
 crw-rw ---- 1 root plugdev 13, 67 Nov 4 18:01 événement3
 crw-rw ---- 1 root plugdev 13, 68 Nov 4 18:01 événement4
 ...

L'user exécutant votre programme doit être dans le groupe plugdev sur ce système. Quelque chose de similaire est probablement le cas sur votre système.

Si vous requestz un moyen de contourner cela (lire ou écrire sur l'appareil sans être dans le groupe), alors non. Cela défierait évidemment le but de la security à travers des groupes d'users.

Une alternative à la lecture directe des périphériques d'événement serait d'utiliser une API d'espace user appropriée à la place. Par exemple, pour lire le keyboard, vous utiliserez ncurses, et pour lire la souris, vous utiliserez GPM.