파일 및 루트부터 파일 경로까지 모든 폴더의 권한을 나열하는 명령

파일 및 루트부터 파일 경로까지 모든 폴더의 권한을 나열하는 명령

예를 들어 파일이 주어지면 루트에서 해당 경로에 있는 모든 디렉터리의 권한, 즉 , , , 에 대한 권한을 /var/some_dir_1/some_dir_2/some_dir_3/some_file나열하는 단일 명령이 있습니까 ?some_filevarsome_dir_1some_dir_2some_dir_3

답변1

절대 경로에서 nameiwith (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

관련 정보