如何列出文件路径中每个组件的权限?

pab*_*ouk 14 linux unix path permissions acl

有时需要确定对路径中的哪个目录的访问权限受到限制。下面是一个例子:

$ ls /sys/kernel/debug/usb/devices
ls: cannot access /sys/kernel/debug/usb/devices: Permission denied
$ cat /sys/kernel/debug/usb/devices
cat: /sys/kernel/debug/usb/devices: Permission denied
Run Code Online (Sandbox Code Playgroud)

既不显示ls也不cat显示用户权限受限的地方。

显示路径中每个组件(目录和文件)的访问权限的最简单方法是什么?我主要对类 Unix 系统的解决方案感兴趣。

use*_*686 22

对于基本的 UNIX 权限(所有者/组/其他),请使用util-linux 的namei一部分:

# namei -l /sys/kernel/debug/usb/devices
f: /sys/kernel/debug/usb/devices
drwxr-xr-x 根根 /
dr-xr-xr-x 根根系统
drwxr-xr-x root 根内核
drwx------ 根根调试
drwxr-xr-x 根根 USB
-r--r--r-- 根根设备