配置/dev/ttyUSB0的权限

配置/dev/ttyUSB0的权限

我正在尝试从 Ubuntu 12.04 与 Arduino 通信。插入 USB 电缆时,arduino 的串行端口显示为 /dev/ttyUSB0。当我尝试使用莫塞里尔,我收到“无法打开设备 /dev/ttyUSB0”错误,但在启动时没有出现莫塞里尔使用须藤. 我必须进行什么配置才能使普通非 root 用户能够访问串行设备?

答案1

您有多种选择:

自动 ACL 分配

您很可能在 Ubuntu 中运行了 systemd-logind 或 ConsoleKit,它们可以根据当前登录控制台的用户帐户自动配置设备节点上的 ACL。这些 ACL 授予除常规权限之外的额外访问权限,可以使用 查看getfacl

要使用此功能,请将以下内容添加到/etc/udev/rules.d/60-extra-acl.rules1

KERNEL=="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess"

1是的,创建该文件。默认情况下它不存在;整个目录用于管理员自定义。)

基于组的访问

tty 设备通常可由特定的团体例如“dialout”或“uucp”。将自己添加到该组即可获得访问权限全部串口:

# gpasswd -a YourUsername dialout

不要忘记注销并重新登录,以便应用群组变更。

权限或所有权变更

类似于上面的 udev 规则也可用于设置“主要”所有者和组以及权限(这是默认组的初始设置方式)。例如:

     KERNEL=="ttyUSB[0-9]*", OWNER="YourUsername"
or:  KERNEL=="ttyUSB[0-9]*", GROUP="users", MODE="0660"
or:  KERNEL=="ttyUSB[0-9]*", MODE="0666"

您可以分配给 OWNER、GROUP 和 MODE 参数。

临时手动更改

做一个一度改变,只需像平常一样使用chmod和/或。chown

     # chown YourUsername /dev/ttyUSB0
or:  # chmod a+rw /dev/ttyUSB0

相关内容