centos 下如何让普通用户访问USB设备

本文介绍了在Linux系统中解决USB设备访问权限问题的两种方法:临时修改权限和持久化配置。通过lsusb查找设备描述符,使用chmod进行临时权限调整,或在udev规则中添加持久化设置。

         在linux下访问usb设备,经常会碰到因没有权限而是失败的问题。解决的方法有两种,一种是临时的,一种是持久的解决方法。

         1)lsusb :找出设备的(临时)描述符(重新插拔会改变),

                            例如输出(Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub)

              chmod:赋予用户访问权限

                             例如 sudo chmod 777  /dev/bus/usb/002/003

          2)在/etc/udev/rules.d添加自定义的设备挂载规则。

               lsusb:找出设备的描述符

                            例如输出(Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub)

               udevadm:输出设备的详细信息

                             udevadm info  --attribute-walk  -name=/dev/bus/usb/002/003

                gedit:编辑规则文件,属性值来自于udevadm

                            sudo gedit 51-my-usb.rules

                             输入 SUBSYSTEMS=="usb", ATTRS{idVendor}=="0e0f", ATTRS{idProduct}=="0002", OWNER="guest", MODE="0666"

                规则生效(插拔)或reboot。(貌似 service udev-post reload 没用)

                             

<think>嗯,用户问的是在Linux下如何确定接入的USB设备。这个问题看起来是基础的系统管理操作,但作为刚接触Linux的用户可能会不太清楚具体步骤。首先,我需要回忆自己在Linux系统中常用的检测USB设备的方法,然后整理出几种不同的方式,方便用户选择适合他们的方法。 首先,想到的是使用命令行工具。常见的命令有lsusb,这个命令能列出所有USB总线和设备的信息。不过可能需要安装usbutils包,如果用户系统里没有的话,可能需要先安装。这点需要提到,避免用户找不到命令时困惑。 然后,dmesg命令也很实用。当插入USB设备时,内核会记录相关信息到日志里,用dmesg可以查看最近的日志信息,从而找到设备连接的记录。不过用户可能需要知道如何过滤信息,比如用grep筛选关键字,或者用tail查看最后几行,这样更有效率。 接下来是检查/sys/bus/usb/devices/目录,这里有很多子目录对应不同的USB设备,每个目录下有设备的信息文件。用户可能需要了解这些目录的结构,但可能对新手来说有点复杂,所以可能需要简单说明如何查看这些信息。 另外,/proc/bus/usb/devices文件也是一个来源,不过内容可能比较难懂,可能适合有经验的用户。这里是否需要详细说明呢?可能简要提及即可,让用户知道有这个方法存在。 还有udevadm命令,这个工具可以监控和查询udev事件,当插入USB设备时,实时显示信息。这对实时监控设备插入很有帮助,特别是调试的时候,可能非常有用。需要说明如何运行这个命令,比如使用monitor参数,并可能需要sudo权限。 图形界面工具方面,如果用户更喜欢图形化操作,可以推荐使用lsusb的GUI版本或者gnome-disks这样的工具。不过大部分服务器环境可能没有图形界面,所以主要还是以命令行方法为主。 需要考虑到不同Linux发行版的差异,比如安装usbutils的命令在Debian/Ubuntu是apt-get,而CentOS是yum。需要提醒用户根据他们的系统选择合适的包管理器。 另外,用户可能需要知道如何区分不同的USB设备,尤其是当连接多个设备时。可能需要解释如何通过供应商ID、产品ID或者设备描述来识别具体的设备。比如lsusb输出的信息中包含ID xxxx:xxxx,这部分可以解释一下,帮助用户理解。 可能还需要提到权限问题,比如普通用户运行某些命令可能需要sudo,或者如何配置udev规则让普通用户也能访问设备,但这可能超出当前问题的范围,所以暂时不提,除非用户进一步询问。 总结一下,回答的结构应该是分步骤介绍不同的方法,每个方法给出具体命令和示例输出,并简要说明其用途和适用场景。这样用户可以根据自己的情况选择合适的方法。同时,提醒可能的依赖包安装和不同发行版的差异,确保用户能顺利执行命令。</think>在 Linux 系统下,可通过以下方法确定接入的 USB 设备: --- ### 一、使用 `lsusb` 命令 **作用**:列出所有 USB 总线及连接的设备信息 **步骤**: 1. 打开终端,输入命令: ```bash lsusb ``` 2. 输出示例: ``` Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 8087:0029 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub ``` - `Bus XXX Device YYY` 表示总线编号和设备编号 - `ID xxxx:xxxx` 中前4位是厂商ID,后4位是产品ID **注意**:若未安装 `lsusb`,需通过包管理器安装: - Debian/Ubuntu: `sudo apt-get install usbutils` - CentOS/RHEL: `sudo yum install usbutils` --- ### 二、查看内核日志 `dmesg` **作用**:实时捕获 USB 设备插入时的内核日志 **步骤**: 1. 插入 USB 设备后,输入命令: ```bash dmesg | tail ``` 2. 查找类似输出: ``` [ 1234.567890] usb 1-2: New USB device found, idVendor=0781, idProduct=5590 ``` - `idVendor` 和 `idProduct` 对应厂商和产品ID --- ### 三、检查 `/sys/bus/usb/devices/` 目录 **作用**:通过系统文件查看 USB 设备详细信息 **步骤**: 1. 输入命令浏览设备列表: ```bash ls /sys/bus/usb/devices/ ``` 2. 进入具体设备目录查看信息(例如 `1-2`): ```bash cat /sys/bus/usb/devices/1-2/idVendor cat /sys/bus/usb/devices/1-2/idProduct ``` --- ### 四、使用 `udevadm` 监控设备事件 **作用**:实时监控 USB 设备的插拔事件 **步骤**: 1. 输入命令: ```bash sudo udevadm monitor --kernel --property --subsystem-match=usb ``` 2. 插入设备后,终端会显示详细的设备属性(如 `DEVNAME=/dev/sdb`)。 --- ### 五、通过 `/proc/bus/usb/devices` 文件 **作用**:查看 USB 设备树形结构(需 root 权限) **步骤**: ```bash sudo cat /proc/bus/usb/devices ``` 输出包含拓扑结构、设备驱动等信息。 --- ### 六、图形化工具(可选) - **GNOME Disks**:适用于桌面环境,提供可视化设备管理。 - **USBView**:专用 USB 设备查看工具,需安装: ```bash sudo apt-get install usbview # Debian/Ubuntu ``` --- ### 总结流程 1. 插入设备 → 用 `dmesg | tail` 快速确认是否被识别。 2. 通过 `lsusb` 获取设备ID。 3. 结合 `/sys/` 或 `udevadm` 进一步分析设备属性。 4. 通过 `/dev/` 下的设备节点(如 `/dev/sdb`)访问存储设备
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值