Lệnh liệt kê quyền của tệp và tất cả các thư mục từ gốc đến đường dẫn của tệp


7

Cho một tập tin, chẳng hạn /var/some_dir_1/some_dir_2/some_dir_3/some_file, là có một lệnh duy nhất mà sẽ liệt kê các điều khoản của some_filevà tất cả các thư mục trong đường đi của nó từ gốc, tức là quyền cho var, some_dir_1, some_dir_2, some_dir_3?


Câu trả lời:


8

Bạn có thể sử dụng nameivới -l(dài) trên một đường dẫn tuyệt đối:

namei -l /absolute/path/to/file

Nó sẽ cung cấp cho bạn một cái gì đó như:

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

Bạn phải cung cấp đường dẫn đầy đủ. Nếu bạn không muốn gõ nó, bạn có thể sử dụng realpathhoặc readlink.

namei -l $(readlink -m relative_path_to/file)

1
Chào mừng bạn đến với SuperUser và cảm ơn vì đã cập nhật một câu hỏi cũ với câu trả lời thậm chí còn tốt hơn!
glallen

-lkhông hoạt động trên RHEL5.6
Putnik

2

bashKịch bản sau đây in tất cả các quyền của mục nhập thư mục được truyền dưới dạng đối số và tất cả các cha mẹ của nó lên đến /:

#!/usr/bin/env bash

[[ $# -eq 1 ]] || exit 1

FILEPATH="$1"

while true ; do
    ls -ld "$FILEPATH"
    [[ "$FILEPATH" != "/" ]] || exit
    FILEPATH="$( dirname "$FILEPATH" )"
done

Lưu như ví dụ parent_permissions.shvà chạy bằng cách sử dụng /path/to/parent_permissions.sh /path/to/file.

Nó chỉ hoạt động với các đường dẫn tuyệt đối trừ khi được kết hợp với readlink -fhoặc abspathtập lệnh từ câu trả lời này , trong trường hợp đó bạn cần thay đổi phép gán ban đầu FILEPATHthành:

FILEPATH="$( abspath "$1" )"

Trên Linux, điều này có thể hoạt động (chưa được kiểm tra):

FILEPATH="$( readlink -f "$1" )"

Ví dụ đầu ra:

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 /

Thêm đối số vào lscuộc gọi hoặc thay thế nó, ví dụ như getfacl, phù hợp trên hệ thống của bạn để in ACL và các thuộc tính mở rộng nếu bạn quan tâm đến chúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.