从没有 root 权限的 /dev/input 设备读取

6 sudo input

有没有办法从/dev/input设备中读取数据,而不需要 root 权限?

就我而言,我想使用 Python 库evdev从多个键盘读取(以便我知道信号来自哪个键盘),因此stdin无法简单地使用。

总是必须使用 sudo-privileges 调用程序不会太优雅 - 例如,是否可以 chmod/dev/input目录(安全性在我的情况下无关紧要)?

或者,更好的是,是否有另一种直接从输入设备读取的方法?

Sar*_*ger 8

这篇堆栈溢出文章似乎回答了您的问题。

见第二个答案。接受的答案是:

查看设备文件属于哪个组。例如,在这里我得到:

$ 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
...

执行您的程序的用户需要在此系统上的 plugdev 组中。您的系统上可能存在类似的情况。

如果您正在寻求一种规避方法(在不加入组的情况下读取或写入设备),那么不。这显然会违背用户组的安全目的。

直接读取事件设备的替代方法是使用适当的用户空间 API。例如,要读取键盘,您可以使用 ncurses,读取鼠标,您可以使用 GPM。