Ubuntu下usb设备读写权限设置

本文介绍了如何解决USB设备在Linux系统中出现的读写权限问题。提供了两种方法:一是直接修改USB端口的读写权限;二是通过udev规则持久化地解决此问题。同时还附带介绍了动态库文件的配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

许多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更新一下配置即可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值