在Linux程序上,在控制台上(如没有xorg等),我正在使用/ dev / input / event *来读取键盘和鼠标,但是我需要root才能读取它们。是否有另一种形式来读取这些东西而不需要root权限(无需更改permisons和配置文件等)?
我理解为什么它默认情况下无需解释。
答案 0 :(得分:8)
是的,可以通过创建udev规则来查看此HowTo
例如以root身份创建文件/etc/udev/rules.d/99-input.rules:
KERNEL ==“event *”,NAME =“input /%k”,MODE =“660”,GROUP =“input”
注意:您可能需要先创建“输入”组。
答案 1 :(得分:6)
检查设备文件属于哪个组。例如,我得到:
$ 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。