Tìm hiểu về Linux Command setfacl

Tiện ích Setfacl đặt Danh sách điều khiển truy cập (ACL) của các tệp và thư mục. Trên dòng lệnh , một chuỗi các lệnh được theo sau bởi một chuỗi các tập tin (mà lần lượt có thể được theo sau bởi một chuỗi các lệnh khác, ...).

Các tùy chọn -m,-x mong đợi một ACL trên dòng lệnh. Nhiều mục ACL được phân cách bằng dấu phẩy (`, '). Các tùy chọn -M,-X đọc một ACL từ một tệp hoặc từ đầu vào tiêu chuẩn. Định dạng mục nhập ACL được mô tả trong Phần ACL ENTRIES.

Tùy chọn --set--set-file đặt ACL của một tệp hoặc một thư mục. ACL trước đó được thay thế. Mục nhập ACL cho thao tác này phải bao gồm quyền.

Tùy chọn -m (--modify)-M (--modify-file) sửa đổi ACL của một tệp hoặc thư mục. Mục nhập ACL cho thao tác này phải bao gồm quyền.

Các tùy chọn -x (--remove)-X (--remove-file) loại bỏ ACL enries. Chỉ các mục ACL không có trường perms được chấp nhận làm tham số, trừ khi POSIXLY_CORRECT được xác định.

Khi đọc từ các tệp bằng các tùy chọn -M-X , setfacl chấp nhận đầu ra getfacl tạo ra. Có tối đa một mục nhập ACL trên mỗi dòng. Sau một dấu Pound (`# '), mọi thứ đến cuối dòng được coi là một chú thích.

Nếu setfacl được sử dụng trên một hệ thống tệp không hỗ trợ ACL, setfacl hoạt động trên các bit quyền của chế độ tệp. Nếu ACL không khớp hoàn toàn trong các bit cho phép, setfacl sửa đổi các bit quyền của chế độ tệp để phản ánh ACL càng chặt chẽ càng tốt, viết một thông báo lỗi tới lỗi chuẩn và trả về với trạng thái thoát lớn hơn 0.

TÓM TẮC

setfacl [-bkndRLPvh] [{-m | -x} acl_spec] [{-M | -X} acl_file] tệp ...

setfacl --restore = tệp

PERMISSIONS

Chủ sở hữu tệp và quy trình có khả năng CAP_FOWNER được cấp quyền sửa đổi ACL của tệp. Điều này tương tự với các quyền cần thiết để truy cập chế độ tệp. (Trên các hệ thống Linux hiện tại, root là người dùng duy nhất có khả năng CAP_FOWNER).

TÙY CHỌN

-b, --remove-all

Xóa tất cả các mục nhập ACL mở rộng. Các mục ACL cơ bản của chủ sở hữu, nhóm và các mục khác được giữ lại.

-k, --remove-default

Xóa ACL mặc định. Nếu không có ACL mặc định, không có cảnh báo nào được phát hành.

-n, --no-mask

Không tính toán lại mặt nạ quyền hiệu quả. Hành vi mặc định của setfacl là tính toán lại mục nhập mặt nạ ACL, trừ khi mục nhập mặt nạ được đưa ra một cách rõ ràng. Mục nhập mặt nạ được đặt thành liên kết của tất cả các quyền của nhóm sở hữu và tất cả các mục nhập của người dùng và nhóm được đặt tên. (Đây chính xác là các mục bị ảnh hưởng bởi mục nhập mặt nạ).

--mặt nạ

Làm tính toán lại mặt nạ quyền hiệu quả, ngay cả khi mục nhập mặt nạ ACL được đưa ra một cách rõ ràng. (Xem tùy chọn -n .)

-d, --default

Tất cả các hoạt động áp dụng cho ACL mặc định. Các mục ACL thông thường trong tập hợp đầu vào được đẩy lên các mục ACL mặc định. Các mục ACL mặc định trong bộ nhập được loại bỏ. (Cảnh báo được đưa ra nếu điều đó xảy ra).

--restore = tệp

Khôi phục bản sao lưu quyền được tạo bởi `getfacl -R 'hoặc tương tự. Tất cả các quyền của một thư mục hoàn chỉnh được khôi phục bằng cách sử dụng cơ chế này. Nếu đầu vào có chứa các chú thích của chủ sở hữu hoặc các bình luận nhóm và setfacl được chạy bởi root, thì chủ sở hữu và nhóm sở hữu của tất cả các tệp cũng được khôi phục. Tùy chọn này không thể được trộn lẫn với các tùy chọn khác ngoại trừ `--test '.

--kiểm tra

Chê độ kiểm tra. Thay vì thay đổi các ACL của bất kỳ tệp nào, các ACL kết quả được liệt kê.

-R, --recursive

Áp dụng hoạt động cho tất cả các tệp và thư mục đệ quy. Tùy chọn này không thể được trộn lẫn với `--restore '.

-L, --logical

Đi bộ hợp lý, theo các liên kết tượng trưng. Hành vi mặc định là tuân theo các đối số liên kết tượng trưng và bỏ qua các liên kết tượng trưng gặp phải trong các thư mục con. Tùy chọn này không thể được trộn lẫn với `--restore '.

-P, - vật lý

Đi bộ về thể chất, bỏ qua tất cả các liên kết tượng trưng. Điều này cũng bỏ qua các đối số liên kết tượng trưng. Tùy chọn này không thể được trộn lẫn với `--restore '.

--phiên bản

In phiên bản của setfacl và thoát.

--Cứu giúp

In trợ giúp giải thích các tùy chọn dòng lệnh.

Kết thúc các tùy chọn dòng lệnh. Tất cả các tham số còn lại được hiểu là tên tệp, ngay cả khi chúng bắt đầu bằng dấu gạch ngang.

Nếu tham số tên tệp là một dấu gạch ngang, setfacl sẽ đọc danh sách tệp từ đầu vào chuẩn.

ACL ENTRIES

Tiện ích setfacl nhận ra các định dạng mục nhập ACL sau đây (các khoảng trống được chèn cho độ rõ ràng):

[d [efault]:] [u [ser]:] uid [: perms ]

Quyền của người dùng được đặt tên. Quyền của chủ sở hữu tệp nếu uid trống.

[d [efault]:] g [roup]: gid [: perms ]

Quyền của một nhóm được đặt tên. Quyền của nhóm sở hữu nếu gid trống.

[d [efault]:] m [yêu cầu] [:] [: perms ]

Mặt nạ quyền hiệu quả

[d [efault]:] o [ther] [:] [: perms ]

Quyền của người khác.

Khoảng trắng giữa các ký tự dấu phân tách và các ký tự không phân cách được bỏ qua.

Các mục ACL thích hợp bao gồm các quyền được sử dụng trong các sửa đổi và thiết lập các hoạt động. (tùy chọn -m , -M , --set--set-file ). Các mục nhập không có trường perms được sử dụng để xóa các mục nhập (tùy chọn -x-X ).

Đối với uidgid, bạn có thể chỉ định tên hoặc số.

Trường perms là một sự kết hợp của các ký tự cho biết các điều khoản: đọc (r) , write (w) , execute (x) , chỉ thực hiện nếu tệp là một thư mục hoặc đã có quyền thực thi đối với một số người dùng (X) . Ngoài ra, trường perms có thể là một chữ số bát phân (0-7).

TỰ ĐỘNG TẠO ENTRIES

Ban đầu, các tệp và thư mục chỉ chứa ba mục ACL cơ sở cho chủ sở hữu, nhóm và các mục khác. Có một số quy tắc cần được thỏa mãn để ACL hợp lệ:

*

Không thể xóa ba mục cơ sở. Phải có chính xác một mục nhập của từng loại mục nhập cơ sở này.

*

Bất cứ khi nào một ACL chứa các mục nhập tên người dùng hoặc các đối tượng nhóm được đặt tên, nó cũng phải chứa một mặt nạ quyền có hiệu lực.

*

Bất cứ khi nào một ACL chứa bất kỳ mục nhập ACL mặc định nào, ba mục cơ sở ACL mặc định (chủ sở hữu mặc định, nhóm mặc định và các mục mặc định khác) cũng phải tồn tại.

*

Bất cứ khi nào một ACL mặc định chứa các mục nhập tên người dùng hoặc các đối tượng nhóm được đặt tên, nó cũng phải chứa một mặt nạ quyền có hiệu lực mặc định.

Để giúp người dùng đảm bảo các quy tắc này, setfacl tạo các mục nhập từ các mục nhập hiện có theo các điều kiện sau:

*

Nếu một ACL chứa tên người dùng được đặt tên hoặc các mục nhập nhóm được đặt tên và không có mục nhập mặt nạ nào tồn tại, một mục nhập mặt nạ chứa các quyền tương tự như mục nhập nhóm được tạo. Trừ khi tùy chọn -n được cho, các điều khoản của mục nhập mặt nạ được điều chỉnh thêm để bao gồm sự kết hợp của tất cả các quyền bị ảnh hưởng bởi mục nhập mặt nạ. (Xem mô tả tùy chọn -n ).

*

Nếu một mục ACL mặc định được tạo và ACL mặc định không chứa mục nhập chủ sở hữu, nhóm sở hữu hoặc mục khác, bản sao của chủ sở hữu ACL, nhóm sở hữu hoặc mục nhập khác sẽ được thêm vào ACL mặc định.

*

Nếu ACL mặc định chứa các mục nhập tên người dùng hoặc các mục nhập nhóm được đặt tên và không có mục nhập mặt nạ nào tồn tại, một mục mặt nạ chứa các quyền tương tự như mục nhập nhóm mặc định của ACL mặc định sẽ được thêm vào. Trừ khi tùy chọn -n được đưa ra, các điều khoản của mục nhập mặt nạ được điều chỉnh thêm để inclu de union của tất cả các quyền bị ảnh hưởng bởi mục nhập mặt nạ. (Xem mô tả tùy chọn -n ).

VÍ DỤ

Cấp quyền truy cập đọc cho người dùng bổ sung

setfacl -mu: lisa: r tập tin

Thu hồi quyền truy cập ghi từ tất cả các nhóm và tất cả người dùng có tên (sử dụng mặt nạ quyền có hiệu lực)

setfacl -mm :: tệp rx

Xóa mục nhập nhóm được đặt tên khỏi ACL của tệp

setfacl -xg: tệp nhân viên

Sao chép ACL của một tập tin khác

getfacl file1 | setfacl --set-file = - file2

Sao chép ACL truy cập vào ACL mặc định

getfacl -a dir | setfacl -d -M- dir

HIỆU SUẤT CHO POSIX 1003.1e TIÊU CHUẨN DRAFT 17

Nếu biến môi trường POSIXLY_CORRECT được định nghĩa, hành vi mặc định của các thay đổi setfacl như sau: Tất cả các tùy chọn không chuẩn đều bị tắt. Tiền tố `` default: '' bị vô hiệu hóa. Các tùy chọn -x-X cũng chấp nhận các trường quyền (và bỏ qua chúng).

XEM THÊM

umask (1),