权限被拒绝 /dev/bus/usb/

权限被拒绝 /dev/bus/usb/

尽管显然拥有正确的权限,但我对“权限被拒绝”感到困惑/dev/bus/usb/005/017

这类似于问题,但我已经尝试重新启动我的 ssh 会话。

$ sudo ls -la  /dev/bus/usb/005/
total 0
drw-rw-rw- 2 root root      120 Dec 25 12:40 .
drw-rw-rw- 7 root root      140 Apr 20  2010 ..
crw-rw-rw- 1 root root 189, 512 Dec 25 12:20 001
crw-rw-rw- 1 root root 189, 515 Dec 25 12:20 004
crw-rw-rw- 1 root root 189, 516 Dec 25 12:20 005
crw-rw-rw- 1 root adb  189, 528 Dec 25 12:40 017 #adb group, g+rw

$ groups ealfonso
ealfonso : ealfonso cdrom floppy audio dip video plugdev netdev scanner bluetooth adb # I am in adb group

$ ls -la  /dev/bus/usb/005/017
ls: cannot access /dev/bus/usb/005/017: Permission denied


$ sudo chown ealfonso:ealfonso /dev/bus/usb/005/017 

$ sudo ls -l /dev/bus/usb/005/017
crw-rw-rw- 1 ealfonso ealfonso 189, 528 Dec 25 12:40 /dev/bus/usb/005/017 #owned by ealfonso

$ ls /dev/bus/usb/005/017
ls: cannot access /dev/bus/usb/005/017: Permission denied

我缺少什么?

编辑:根据要求添加 ls -ld 的输出:

$ sudo ls -lad  /dev/bus/usb/005
drw-rw-rw- 2 root root 120 Dec 25 12:40 /dev/bus/usb/005 #missing a+x

$ sudo chmod a+x /dev/bus/usb/005 # add a+x

$ ls -la  /dev/bus/usb/005/017 # still denied
ls: cannot access /dev/bus/usb/005/017: Permission denied

$ sudo ls -lad  /dev/bus/usb/005
drwxrwxrwx 2 root ealfonso 120 Dec 25 12:40 /dev/bus/usb/005

编辑。正如评论中指出的,/dev/bus/usb 也缺少 x 权限

$ ls /dev/bus/usb -l
ls: cannot access /dev/bus/usb/005: Permission denied
ls: cannot access /dev/bus/usb/004: Permission denied
ls: cannot access /dev/bus/usb/003: Permission denied
ls: cannot access /dev/bus/usb/002: Permission denied
ls: cannot access /dev/bus/usb/001: Permission denied
total 0
d????????? ? ? ? ?            ? 001
d????????? ? ? ? ?            ? 002
d????????? ? ? ? ?            ? 003
d????????? ? ? ? ?            ? 004
d????????? ? ? ? ?            ? 005

$ sudo ls /dev/bus/usb -l
total 0
drw-rw-rw- 2 root root      60 Apr 20  2010 001
drw-rw-rw- 2 root root      80 Apr 20  2010 002
drw-rw-rw- 2 root root      60 Apr 20  2010 003
drw-rw-rw- 2 root root      60 Apr 20  2010 004
drwxrwxrwx 2 root ealfonso 120 Dec 25 12:40 005

$ sudo chmod a+x /dev/bus/usb 

$ ls -la  /dev/bus/usb/005/017
crw-rw-rw- 1 root ealfonso 189, 528 Dec 25 13:43 /dev/bus/usb/005/017

答案1

这是您的输出的一部分:

ls -la  /dev/bus/usb/005/017
ls: cannot access /dev/bus/usb/005/017: Permission denied

提示:stat只要您能够访问该文件(通过包含该文件的目录),您就始终可以访问该文件,即使您没有该文件的权限。因此,我怀疑你的问题实际上并不在/dev/bus/usb/005/017于其本身。

为了能够访问该文件,stat需要x(执行)访问路径名中的所有目录。那是,

/
/dev
/dev/bus
/dev/bus/usb
/dev/bus/usb/005

其中一个或多个目录必须缺少x权限。但可能不会,/或者/dev因为如果问题出在那里,您的系统可能无法使用。请注意,任何或所有这些目录都可能具有r访问权限,允许您查看它们包含哪些文件,但无法访问这些文件。

为什么你/dev/bus/usb/005没有/dev/bus/usb得到x许可?

udev这些目录将在首次创建设备节点及其父目录时创建。也许umaskudev 守护进程太严格了?我不太确定为什么它会出现在您的系统上。为了正确操作,umask 中的八进制数字都不应该是奇数。请注意,问题可能出udevd在 initramfs 中的早期启动时间。

相关内容