无需 root 权限即可从 /dev/input 设备读取

无需 root 权限即可从 /dev/input 设备读取

有没有一种方法可以从/dev/input设备读取数据,而不需要 root 权限?

就我而言,我想使用 Python 库埃夫德夫从多个键盘读取(这样我就知道信号来自哪个键盘),所以简单地使用stdin是不可能的。

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

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

答案1

堆栈溢出文章似乎回答了你的问题。

请参阅第二个答案。接受的答案是:

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

$ ls -l /dev/输入/
...
crw-rw---- 1 rootplugdev 13, 64 十一月 4 18:01 event0
crw-rw---- 1 rootplugdev 13, 65 十一月 4 18:01 事件1
crw-rw---- 1 rootplugdev 13, 66 十一月 4 18:01 事件2
crw-rw---- 1 rootplugdev 13, 67 十一月 4 18:01 event3
crw-rw---- 1 rootplugdev 13, 68 十一月 4 18:01 event4
...

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

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

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

相关内容