Permissions

權限被拒絕 /dev/bus/usb/

  • December 25, 2016

儘管顯然具有正確的權限,但我對“權限被拒絕”感到困惑/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

這是您的輸出的一部分:

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 中的早期引導時啟動。

引用自:https://unix.stackexchange.com/questions/332731