예를 들어 파일이 주어지면 루트에서 해당 경로에 있는 모든 디렉터리의 권한, 즉 , , , 에 대한 권한을 /var/some_dir_1/some_dir_2/some_dir_3/some_file
나열하는 단일 명령이 있습니까 ?some_file
var
some_dir_1
some_dir_2
some_dir_3
답변1
절대 경로에서 namei
with (long)을 사용할 수 있습니다 .-l
namei -l /absolute/path/to/file
다음과 같은 내용을 제공합니다.
dr-xr-xr-x root root /
drwxr-xr-x root root absolute
drwx------ user1 group1 path
drwxr-xr-x user1 group1 to
-rw-r--r-- user1 group1 file
전체 경로를 제공해야 합니다. 입력하고 싶지 않으면 realpath
또는 를 사용할 수 있습니다 readlink
.
namei -l $(readlink -m relative_path_to/file)
답변2
다음 bash
스크립트는 인수로 전달된 디렉터리 항목의 모든 권한과 다음까지의 모든 상위 항목을 인쇄합니다 /
.
#!/usr/bin/env bash
[[ $# -eq 1 ]] || exit 1
FILEPATH="$1"
while true ; do
ls -ld "$FILEPATH"
[[ "$FILEPATH" != "/" ]] || exit
FILEPATH="$( dirname "$FILEPATH" )"
done
예를 들어 parent_permissions.sh
저장하고 /path/to/parent_permissions.sh /path/to/file
.
readlink -f
또는 와 결합되지 않는 한 절대 경로에서만 작동합니다.abspath
이 답변의 스크립트, 이 경우 초기 할당을 FILEPATH
다음으로 변경해야 합니다.
FILEPATH="$( abspath "$1" )"
Linux에서는 다음과 같이 작동할 수 있습니다(테스트되지 않음).
FILEPATH="$( readlink -f "$1" )"
예제 출력:
drwxr-xr-x 66 danielbeck staff 2244 2 Feb 12:38 /Users/danielbeck
drwxr-xr-x 11 root admin 374 1 Feb 15:21 /Users
drwxrwxr-t 35 root admin 1258 22 Jan 23:09 /
관심이 있는 경우 ACL 및 확장 속성을 인쇄하려면 호출 에 인수를 추가 ls
하거나 시스템에서 적절하게 로 대체하십시오 .getfacl