올바른 권한이 있음에도 불구하고 "권한 거부" 메시지가 표시되어 혼란스럽습니다 /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의 8진수가 홀수가 아니어야 합니다. 문제는 udevd
initramfs의 초기 부팅 시간일 수 있습니다.