파일을 감안할 때, 말 /var/some_dir_1/some_dir_2/some_dir_3/some_file
의 권한을 나열합니다 하나의 명령이 some_file
에 대한 권한, 즉 루트로부터 경로에있는 모든 디렉토리를 var
, some_dir_1
, some_dir_2
,는 some_dir_3
?
답변
절대 경로에서 (long) namei
과 함께 사용할 수 있습니다 -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)
답변
다음 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에 관심있는 경우 ACL 및 확장 된 속성을 인쇄 하려면 ls
호출에 인수를 추가 하거나 예를 들어으로 대체하십시오 getfacl
.