Khi sử dụng setcap, quyền được lưu ở đâu?


11

Sử dụng setcapđể cấp quyền bổ sung cho nhị phân nên ghi quyền mới ở đâu đó, trên bộ nhớ hoặc trong bộ nhớ, nó được lưu ở đâu?

Sử dụng lsofnhư là không hoạt động vì quá trình biến mất quá nhanh.


Sử dụng một quá trình khác. Tạo một bản sao /usr/bin/sleepvà cung cấp các khả năng cho bản sao này.
Hauke ​​Laging

Câu trả lời:


9

Các quyền mở rộng như danh sách điều khiển truy cập được đặt bởi setfaclvà 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 setcapcó thể hết dung lượng đĩa. Nhưng thậm chí chmodcó 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.capabilityvà nó được mã hóa theo định dạng nhị phân getcapgiải mã cho bạn.


4

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.


capsh --decode = có thể có ích để lấy dữ liệu có thể đọc được của con người.
Zulgrib
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.