Linux 有问必答:如何在 Linux 中永久修改 USB 设备权限

简介:

提问:当我尝试在 Linux 中运行 USB GPS 接收器时我遇到了下面来自 gpsd 的错误。


  
  
  1. gpsd[377]: gpsd:ERROR: read-only device open failed: Permission denied
  2. gpsd[377]: gpsd:ERROR: /dev/ttyUSB0: device activation failed.
  3. gpsd[377]: gpsd:ERROR: device open failed: Permission denied - retrying read-only

看上去 gpsd 没有权限访问 USB 设备(/dev/ttyUSB0)。我该如何永久修改它在Linux上的权限?

当你在运行一个会读取或者写入USB设备的进程时,进程的用户/组必须有权限这么做才行。当然你可以手动用chmod命令改变 USB 设备的权限,但是手动的权限改变只是暂时的。USB 设备会在下次重启时恢复它的默认权限。

作为一个永久的方式,你可以创建一个基于 udev 的 USB 权限规则,它可以根据你的选择分配任何权限模式。下面是该如何做。

首先,你需要找出 USB 设备的 vendorID 和 productID。使用lsusb命令。


 
 
  1. $ lsusb -vvv

上面lsusb的输出中,找出你的 USB 设备,并找出"idVendor"和"idProduct"字段。本例中,我们的结果是idVendor (0x067b)和 idProduct (0x2303)

下面创建一个新的udev规则。


 
 
  1. $ sudo vi /etc/udev/rules.d/50-myusb.rules


 
 
  1. SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="users", MODE="0666"

用你自己的"idVendor"和"idProduct"来替换。MODE="0666"表示USB设备的权限。

现在重启电脑并重新加载 udev 规则:


 
 
  1. $ sudo udevadm control --reload

接着验证下 USB 设备的权限。


本文来自云栖社区合作伙伴“Linux中国”,原文发布日期:2015-10-22
目录
相关文章
|
30天前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
39 2
|
1月前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
54 11
|
28天前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
28天前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS
|
28天前
|
网络协议 Linux 网络安全
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
|
29天前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
24 0
|
3月前
|
Linux
Linux 设备驱动程序(四)
Linux 设备驱动程序(四)
20 1
|
3月前
|
存储 数据采集 缓存
Linux 设备驱动程序(三)(中)
Linux 设备驱动程序(三)
32 1
|
3月前
|
Unix Linux Go
Linux中的chmod权限问题
Linux中的chmod权限问题
53 0
|
3月前
|
存储 缓存 安全
Linux 设备驱动程序(三)(下)
Linux 设备驱动程序(三)
25 0