루트에서 파일 경로까지 파일 및 모든 폴더의 권한을 나열하는 명령 대한 권한, 즉

파일을 감안할 때, 말 /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 -fabspath스크립트 와 결합되지 않은 경우 절대 경로에서만 작동합니다. 경우 초기 할당을 다음으로 변경해야 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.


답변