udev 在运行中需要 sudo 吗?

udev 在运行中需要 sudo 吗?

我有一条udev正确匹配的规则,但它无法正确执行命令RUN+="/usr/bin/synclient TouchpadOff=1"。如果我将其更改为某种测试 shell 脚本,它就可以正常工作。

如果我synclient TouchpadOff=1从命令行运行,则不会返回任何结果,因此无法正常工作。但是,添加sudo该行可以按预期禁用触摸板。

udev 没有以超级用户权限执行该命令吗?

Ubuntu 15.04

答案1

synclient依赖于 X 服务器才能工作。请参阅man synclient。因此,您需要定义当前正在运行的服务器的DISPLAY和环境变量。XAUTHORITY

如果您只使用具有简单服务器设置的单个用户帐户,请尝试以下操作:

RUN+="/bin/sh -c 'DISPLAY=:0 XAUTHORITY=/home/<username>/.Xauthority synclient TouchpadOff=1'"

更改<username>为您的用户名。

相关内容