尽管显然拥有正确的权限,但我对“权限被拒绝”感到困惑/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
这些目录将在首次创建设备节点及其父目录时创建。也许umask
udev 守护进程太严格了?我不太确定为什么它会出现在您的系统上。为了正确操作,umask 中的八进制数字都不应该是奇数。请注意,问题可能出udevd
在 initramfs 中的早期启动时间。