Câu trả lời:
Các quyền mở rộng như danh sách điều khiển truy cập được đặt bởi setfacl
và cờ khả năng được đặt bởi setcap
được lưu trữ ở cùng một nơi với quyền truyền thống và đặt cờ id [ug] được đặt bởi chmod
: trong nút của tệp.
(Chúng thực sự có thể được lưu trữ trong một khối riêng biệt trên đĩa, bởi vì một nút có kích thước cố định có chỗ cho các bit cho phép truyền thống nhưng không dành cho các quyền mở rộng có khả năng không bị ràng buộc. quan tâm setcap
có thể hết dung lượng đĩa. Nhưng thậm chí chmod
có thể hết dung lượng đĩa trên hệ thống sử dụng sự trùng lặp!)
GNU ls không hiển thị các thuộc tính setcap của tệp. Bạn có thể hiển thị chúng với getcap
. Bạn có thể liệt kê tất cả các thuộc tính mở rộng với getfattr -d -m -
; thuộc tính setcap được gọi security.capability
và nó được mã hóa theo định dạng nhị phân getcap
giải mã cho bạn.
setcap thiết lập các khả năng của tệp được lưu trữ trong thuộc tính mở rộng của hệ thống tệp. Những điều này được giải thích trong man 7 capabilities
:
Các bộ khả năng của tệp được lưu trữ trong một thuộc tính mở rộng (xem setxattr (2)) có tên security.capability.
Bạn có thể kiểm tra các khả năng của một quy trình đang chạy bằng cách kiểm tra các trường CapInh / CapPrm / CapEff trong /proc/PID/status
. Xem câu trả lời của tôi về " Cách đặt các khả năng bằng lệnh setcap? " Để được giải thích về cách các khả năng được áp dụng để xử lý tại exec.
/usr/bin/sleep
và cung cấp các khả năng cho bản sao này.