Là setcap-thay đổi vĩnh viễn


11

Khi sử dụng setcap cho một tệp, sự thay đổi này là vĩnh viễn hay tôi phải gọi setcap ở đâu đó khi khởi động?

setcap cap_sys_nice fooexecutable

Câu trả lời:


15

Các setcap vào file lưu trữ các khả năng trong một thuộc tính mở rộng với một cuộc gọi đến setxattr . Thuộc tính mở rộng này được lưu trữ như các thuộc tính khác (quyền sở hữu, quyền ...) trong hệ thống tệp.

Vì kernel 2.6.24, kernel hỗ trợ các bộ khả năng liên kết với một tệp thực thi bằng setcap (8). 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.

Vì vậy, bạn không phải đặt lại giới hạn của mình trên mỗi lần khởi động lại.


Nếu tập tin được thay thế thì sao?
ryanwinchester

1
@ryanwinchester nếu chỉ thay đổi nội dung của tệp, không có vấn đề gì, nhưng nếu tệp bị xóa / tạo lại, dung lượng setcap cũng sẽ bị xóa.
Cédric Julien

:( ah, vậy đó là vấn đề của tôi. Tôi có một đoạn script xây dựng lại một thư mục và sau đó bắt đầu một máy chủ lắng nghe trên cổng 80. Tôi cần tìm ra một cách để không phải chạy setcapmỗi lần
ryanwinchester

"Nếu chỉ nội dung của tệp được thay đổi, không có vấn đề gì" là không đúng. Thay đổi nội dung của tệp sẽ khiến khả năng của tệp bị xóa. Xem unix.stackexchange.com/a/283408/2526
Richard Fearn

0

Những thay đổi là vĩnh viễn nhưng tôi đã gặp vấn đề khi sử dụng nodejs.

Bạn có thể sử dụng authbindđể cung cấp sự cho phép của người dùng

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
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.