我的系统是 Ubuntu 13.04,它运行良好,但我已经安装了 VirtuaBox 来运行 Windows XP,这对于我运行与通过 USB 转串行适配器设置的警报对话的应用程序至关重要。
VirtualBox 使用 ttyS0 作为串行端口,只有sudo chmod 666 /dev/ttyS0
向终端发出命令才能有效开始通信。
每次我启动 Ubuntu 时,ttyS0
权限都会返回到默认值,并且chmod
每次启动时我都必须运行。
我的问题是:如何永久更改 /dev/ttyS0 文件权限?如果这不是一个好的做法,还有其他方法可以解决这个问题吗?
答案1
无需更改系统文件的权限。串行设备具有以下默认权限:
crw-rw---- 1 root dialout ... /dev/ttyS0
因此,您要做的就是将用户添加到dialout
组中:
sudo adduser $USER dialout
答案2
解决方案 1:检查 ttyS0 的组,然后将其分配给您的用户,然后重新登录或 su - 用户
crw-rw---- 1 root dialout 4, 64 feb 28 18:23 /dev/ttyS0
usermod -aG dialout youruser
su - youruser
解决方案 2:如果您不喜欢第一个解决方案,请编辑 /etc/udev/rules.d/50-tty.rules
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="whateveryouwant"
重新启动 udev 或重新启动,当然,在将您的用户添加到选定组之前