2011-10-22 18 views
19

Để thêm khả năng cap_net_raw đến (cho ví dụ như/bin/ping), chúng tôi sử dụng như sau:Sử dụng setcap trong linux

#setcap cap_net_raw=ep /bin/ping 

ý nghĩa của ep là gì và tại sao nó cần thiết ở đây?

Cảm ơn.

+0

http://kernel.org/doc/man-pages/online/pages/man7/capabilities.7.html và 'man cap_from_text'. – Mat

Trả lời

22

Điều này đặt bit CAP_NET_RAW trong cả bộ khả năng "hiệu quả" (e) và "được phép" (p). Hai tập hợp này, cùng với tập hợp "có thể kế thừa", điều chỉnh các khả năng mà quy trình có hoặc có thể đặt.

Xem thêm ở đây:

capabilities - Linux man page

Capability Thiết

Mỗi thread có ba bộ khả năng chứa zero hoặc nhiều khả năng trên:

Effective - các các khả năng được hạt nhân sử dụng để thực hiện kiểm tra quyền cho chuỗi.

Permitted - khả năng rằng thread có thể giả định (ví dụ, một superset hạn chế cho bộ hiệu quả và thừa kế). Nếu một chuỗi giảm khả năng từ tập hợp được phép của nó, nó không bao giờ có thể lấy lại khả năng đó (trừ khi nó exec() s một chương trình người dùng-ID-root).

inheritable - các khả năng được bảo quản qua một lần thực hiện (2). Một đứa trẻ được tạo ra thông qua ngã ba (2) kế thừa bản sao các bộ khả năng của cha mẹ. Xem phần dưới đây để thảo luận về việc điều trị các khả năng trong quá trình exec(). Sử dụng capset (2), một thread có thể thao tác các tập khả năng của riêng nó, hoặc, nếu nó có khả năng CAP_SETPCAP , các luồng của một luồng trong một tiến trình khác.

Các vấn đề liên quan