Есть ли способ увидеть разрешения всех промежуточных каталогов пути.?

У меня есть путь к файлу. Есть ли какая-либо одна команда для просмотра разрешений файла / каталога для всех промежуточных каталогов в пути.?

5 Solutions collect form web for “Есть ли способ увидеть разрешения всех промежуточных каталогов пути.?”

Вот два выхода. Один вызов для каждого компонента пути:

 $ (IFS=/; set -f -- $PWD; for arg; do path="${path%/}/$arg"; ls -dal "$path"; done) 

Вывод:

 # drwxr-xr-x 31 root admin 1122 4 Nov 22:08 / # drwxr-xr-x 9 root admin 306 3 Nov 17:36 /Users # drwxr-xr-x+ 67 janmoesen staff 2278 7 Nov 14:46 /Users/janmoesen # drwxr-xr-x+ 53 janmoesen staff 1802 4 Nov 22:07 /Users/janmoesen/Sites # drwxr-xr-x 28 janmoesen staff 952 7 Nov 15:01 /Users/janmoesen/Sites/example.com 

Только одним вызовом ls со всеми путями:

 $ (IFS=/; set -f -- $PWD; for arg; do path="${path%/}/$arg"; paths+=("$path"); done; ls -dal "${paths[@]}") 

Вывод:

 # drwxr-xr-x 31 root admin 1122 4 Nov 22:08 / # drwxr-xr-x 9 root admin 306 3 Nov 17:36 /Users # drwxr-xr-x+ 67 janmoesen staff 2278 7 Nov 14:46 /Users/janmoesen # drwxr-xr-x+ 53 janmoesen staff 1802 4 Nov 22:07 /Users/janmoesen/Sites # drwxr-xr-x 28 janmoesen staff 952 7 Nov 15:01 /Users/janmoesen/Sites/example.com 

Linux поставляется с командой namei которая в основном полезна для отображения символических ссылок в путях, но также может показывать право собственности.

 $ namei -nom ~ f: /home/gilles drwxr-xr-x root root / drwxr-sr-x root staff home drwxr-xr-x gilles gilles gilles 

В противном случае, это способ перебора последовательных каталогов, содержащих данный файл (а не единственный, как показывают другие ответы на этой странице) и перечислить их содержимое.

 d=$PWD; set /; while [ -n "$d" ]; do set -- "$@" "$d/"; d=${d%/*}; done; ls -ld "$@" 

Обратите внимание, что этот список может немного вводить в заблуждение при наличии символических ссылок. Например, если /foo/bar является символической ссылкой на /hello/world которая сама по себе является символической ссылкой на /one/two , а все /foo , /hello и /world являются читаемыми в мире (например, режим 755), но /hello не читается пользователю Alice, тогда Alice не сможет достичь /foo/bar , но в листинге выше будут отображаться только общедоступные каталоги.

 #!/bin/bash (( $# )) || set -- "$PWD" IFS='/' for _arg; do if ! [[ -e "${_arg}" ]]; then printf '%s\n' "${_arg} does not exist!" exit 1 fi read -ra _dirs <<< "${_arg}" (( _length = ${#_dirs[@]} + 1 )) for (( _offset = 2 ; _offset < _length ; _offset++ )); do _current_dir="${_dirs[*]::_offset}" _perms=$(ls -ld "${_current_dir}" | awk '{ print $1" "$3" "$4 }') printf '%s %s\n' "${_perms}" "${_current_dir}" done done 

Я не знаю, как это сделать. Для этой задачи я использую скрипт оболочки, вы также можете пригодиться:

  #!/bin/ksh if [ $# -eq 0 ] then set "$PWD" fi for path in "$@" do while true do ls -ld "$path" if [ -z "$path" -o "$path" = . -o "$path" = / ] then break fi path=$(dirname "$path") done done 

EDIT : использование цикла while исключает необходимость перерыва …

  #!/bin/ksh [ $# -eq 0 ] && set "$PWD" for path do until test -z "$path" -o "$path" = . -o "$path" = / do ls -ld "$path" path=$(dirname "$path") done done 

Не так сложно, но это поможет вам, я думаю.

 find . -type d -exec ls -lrt {} \; 
  • mpd / mpc и NTFS mount
  • Как разрешения для Linux работают, когда процесс выполняется как определенная группа?
  • sudo tar изменяет права собственности на файлы неизвестного пользователя
  • Вход для суперпользователя для запуска скрипта
  • Запретить пользователю удалять папки и файлы в собственном доме
  • Разрешить процессу без полномочий root доступ ко всем домашним каталогам без ущерба для безопасности?
  • Как поведение файловой системы ведет себя в разных системах, совместно использующих экспорт NFS?
  • Создает ли каталог / var / log только для чтения debian linux?
  • Создавайте файлы, которые могут редактировать как www-data, так и myuser
  • Ограничить пользователя от просмотра файлов, которыми он не владеет.
  • Установка разрешений с помощью rsync только в том случае, если файл принадлежит пользователю
  • Linux и Unix - лучшая ОС в мире.