Ubuntu:
其实只要很简单的一步,就能够实现非root权限就能访问/dev/ttyS*设备了。
首先我们来看看为什么普通账户会没有权限访问ttyS设备了:
ls -l /dev/ttyS0 crw-rw---- 1 root dialout 4, 64 8月 30 21:53 /dev/ttyS0
从上面的输出,我们很容易看出来,ttyS设备的用户主是root,而所属的组是dialout,并且owner和group都是有相同的rw权限的,但others是没有任何权限的。
使用groups命令,我们就明了了:我们在安装Ubuntu时,安装时使用的账户并不会默认加入dialout组,因此该用户就没有权限可以访问ttyS设备了。
解决方法也非常简单:
sudo usermod -a -G dialout user_name
这样,重启系统后,用户“user_name”就会加入dialout组了,之后我们就能自由自在地访问ttyS设备了,enjoy yourself!
在RHEL3包括3以下版本串口设备/dev/ttyS*的权限可以root用户
更改比如: chmod 0666 /dev/ttyS0, 更改后重启设备/dev/ttyS0不变,
但在4以上版本,做以上修改后,重启机器后设备/dev/ttyS0权限将改回
原来的0660, 为了解决以上问题,需做如下配置:
在 /etc/security/console.perms 文件里增加如下两行
<COMn>=/dev/ttyS*
<console> 0666 <COMn> 0666 root.uucp
若需设置单个设备则可将ttyS* 改为 ttyS0等。
完成后重启系统,然后查看设备权限,你会发现已经按你的要求设置
初始权限了!