'setcap' ghi đè khả năng cuối cùng. Làm cách nào để đặt nhiều khả năng?


9

Tôi muốn cung cấp cho node.js khả năng nghe trên cổng 80 và tắt máy tính. Ban đầu tôi đã thử hai lệnh này theo trình tự:

setcap cap_net_bind_service=+ep /usr/bin/nodejs
setcap cap_sys_boot=+ep /usr/bin/nodejs

Sau đó, ứng dụng của tôi không thể liên kết với cổng 80. Tôi đã kiểm tra bằng getcap:

# getcap /usr/bin/nodejs
/usr/bin/nodejs = cap_sys_boot+ep

Nếu tôi chạy lại setcap cho cap_net_bind_service:

# getcap /usr/bin/nodejs
/usr/bin/nodejs = cap_net_bind_service+ep

Tôi không thấy bất cứ điều gì trong trang người đàn ông http://linux.die.net/man/8/setcap về việc thiết lập nhiều khả năng và thử một số điều trong tuyệt vọng:

# setcap cap_net_bind_service=+ep /usr/bin/nodejs cap_sys_boot=+ep /usr/bin/nodejs
# getcap /usr/bin/nodejs
/usr/bin/nodejs = cap_sys_boot+ep
# setcap cap_net_bind_service=+ep cap_sys_boot=+ep /usr/bin/nodejs
Failed to set capabilities on file `cap_sys_boot=+ep' (No such file or directory)

Làm cách nào để đặt nhiều khả năng?

Câu trả lời:


17

Và một cú pháp tuyệt vọng cuối cùng đoán ra:

# setcap cap_net_bind_service,cap_sys_boot=+ep /usr/bin/nodejs
# getcap /usr/bin/nodejs
/usr/bin/nodejs = cap_net_bind_service,cap_sys_boot+ep

vui lòng đánh dấu. Bạn có câu trả lời đúng.
ctrl-alt-delor
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.