Нижче наведено простий сценарій, подібний до оболонки Борна. Він проходить шлях шляхом поступового видалення останніх компонентів за допомогою dirname
команди, поки шлях не перестане змінюватися. Ви отримуєте /
або .
в кінці, або в кінці.
#!/bin/sh
f="$1"
p=
while test "$f" != "$p" ; do
ls -ld "$f"
p="$f"
f="$(dirname "$f")"
done
В одному рядку, sudo
щоб мати можливість бачити компоненти з обмеженими правами доступу:
f=/sys/kernel/debug/usb/devices p= ; while test "$f" != "$p" ; do sudo ls -ld "$f" ; p="$f" ; f="$(dirname "$f")" ; done
Приклад виведення
-r--r--r-- 1 root root 0 Dec 5 10:36 /sys/kernel/debug/usb/devices
drwxr-xr-x 3 root root 0 Dec 5 10:36 /sys/kernel/debug/usb
drwx------ 19 root root 0 Dec 5 10:36 /sys/kernel/debug
drwxr-xr-x 7 root root 0 Dec 5 10:37 /sys/kernel
drwxr-xr-x 13 root root 0 Dec 5 10:37 /sys
drwxr-xr-x 27 root root 4096 Dec 3 09:39 /
POSIX ACL
Якщо рядок дозволу ls -l
відображається +
в кінці, вам потрібно перерахувати ACL, використовуючи getfacl
для перегляду повних прав доступу:
#!/bin/sh
f="$1"
p=
while test "$f" != "$p" ; do
getfacl "$f"
p="$f"
f="$(dirname "$f")"
done