Ubuntu下usb设备读写权限设置
2015-10-21 17:03
405 查看
许多USB硬件第一次插入新电脑时,经常会出现读写权限的问题,提示为
/dev/bus/usb/001/00*: Permission denied
导致这一问题的原因就是设备所属用户和用户组为root而非当前的普通用户。
使用以下命令:
ls -all /dev/bus/usb/001
可以查看用户和用户组
crw-rw-r-- 1 root root 189, 0 2015-10-21 17:49 001
crw-rw-r-- 1 root root 189, 1
2015-10-21 17:49 002
在此可以发现,设备端口001的用户和用户组都为root。
解决方案通常为两种:
1. 读写权限修改:
sudo chmod 666 /dev/bus/usb/001/00*
sudo chown user /dev/bus/usb/001/00*
sudo chogrp user /dev/bus/usb/001/00*
对于有些硬件,由于每次连接时的端口号都不一样,所以以上方法不适用。
2. 端口分配
(1) 首先用lsusb命令查看厂家编码和产品编码
Bus 003 Device 002: ID 413c:2003 Dell Computer Corp. Keyboard
Bus 001 Device 007: ID 0403:cb48 Future Technology Devices International, Ltd
Bus 001 Device 006: ID 0461:4d15 Primax Electronics, Ltd Dell Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
其中ID后面的就是我们需要的,以第一行为例,产品编码是2003,厂家代码是413c。
然后编辑/etc/udev/rules.d/70-persistent-usb.rules (这个文件可能不存在,可以自己创建。最开始的70可以改,根据自己电脑上的其他文件一致即可), 添加以下文字:
SYSFS{idProduct}=="2003",SYSFS{idVendor}=="413c",MODE="666",OWNER=“username",GROUP="groupname"
保存后退出。 此文件需要sudoer privilege.
重新插入usb设备,并查看用户组和所属用户:
ls -all /dev/bus/usb/001
crw-rw-r-- 1 user user 189, 0
2015-10-21 17:49 001
crw-rw-r-- 1 root root 189, 1
2015-10-21 17:49 002
这样usb设备001就创建在user的用户和用户组里了。
从新试验读写功能,用户将在普通权限下读写该usb设备。
-------------------------附:查看用户和组的方法
groups 查看当前登录用户的组内成员
groups gliethttp 查看gliethttp用户所在的组,以及组内成员
whoami 查看当前登录用户名
/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名
设置动态库(*.so)文件的运行环境:
1.Create path /home/ubuntu/lib;
2.Copy the dynamic library files (SO files) into the path;
3.在/etc/ld.so.conf中加入/home/ubuntu/lib这一行,保存之后,再运行:/sbin/ldconfig –v更新一下配置即可。
/dev/bus/usb/001/00*: Permission denied
导致这一问题的原因就是设备所属用户和用户组为root而非当前的普通用户。
使用以下命令:
ls -all /dev/bus/usb/001
可以查看用户和用户组
crw-rw-r-- 1 root root 189, 0 2015-10-21 17:49 001
crw-rw-r-- 1 root root 189, 1
2015-10-21 17:49 002
在此可以发现,设备端口001的用户和用户组都为root。
解决方案通常为两种:
1. 读写权限修改:
sudo chmod 666 /dev/bus/usb/001/00*
sudo chown user /dev/bus/usb/001/00*
sudo chogrp user /dev/bus/usb/001/00*
对于有些硬件,由于每次连接时的端口号都不一样,所以以上方法不适用。
2. 端口分配
(1) 首先用lsusb命令查看厂家编码和产品编码
Bus 003 Device 002: ID 413c:2003 Dell Computer Corp. Keyboard
Bus 001 Device 007: ID 0403:cb48 Future Technology Devices International, Ltd
Bus 001 Device 006: ID 0461:4d15 Primax Electronics, Ltd Dell Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
其中ID后面的就是我们需要的,以第一行为例,产品编码是2003,厂家代码是413c。
然后编辑/etc/udev/rules.d/70-persistent-usb.rules (这个文件可能不存在,可以自己创建。最开始的70可以改,根据自己电脑上的其他文件一致即可), 添加以下文字:
SYSFS{idProduct}=="2003",SYSFS{idVendor}=="413c",MODE="666",OWNER=“username",GROUP="groupname"
保存后退出。 此文件需要sudoer privilege.
重新插入usb设备,并查看用户组和所属用户:
ls -all /dev/bus/usb/001
crw-rw-r-- 1 user user 189, 0
2015-10-21 17:49 001
crw-rw-r-- 1 root root 189, 1
2015-10-21 17:49 002
这样usb设备001就创建在user的用户和用户组里了。
从新试验读写功能,用户将在普通权限下读写该usb设备。
-------------------------附:查看用户和组的方法
groups 查看当前登录用户的组内成员
groups gliethttp 查看gliethttp用户所在的组,以及组内成员
whoami 查看当前登录用户名
/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名
设置动态库(*.so)文件的运行环境:
1.Create path /home/ubuntu/lib;
2.Copy the dynamic library files (SO files) into the path;
3.在/etc/ld.so.conf中加入/home/ubuntu/lib这一行,保存之后,再运行:/sbin/ldconfig –v更新一下配置即可。
相关文章推荐
- JavaScript中JSON使用
- ios代码编写UIButton,设置图片,图片不显示
- Google地图API方式查看卫星地图
- 用git无法连接github的解决方法
- SVN checkout出某个特定版本
- ORACLE函数
- scp跨机远程拷贝
- 请记住我,我叫叶良辰
- 第八周项目2建立链串算法库
- 像素,分辨率,以及点,px ,pt ,PPI ,DPI
- Android:AsyncTask
- HDU 1711 - Number Sequence(kmp)
- Mobiscroll脚本破解,去除Trial和注册时间限制
- Git常用命令
- 《软件需求十步走》阅读笔记二
- jquery实现广告位循环向上滚动
- APP提交APP Store 加速通道
- 金额转换
- 用java来调用OpenCV (一)
- 选择排序算法Java与Python实现