'setcap' เขียนทับความสามารถล่าสุด ฉันจะตั้งค่าความสามารถหลายอย่างได้อย่างไร


9

ฉันต้องการให้ node.js ความสามารถในการฟังบนพอร์ต 80 และปิดเครื่องคอมพิวเตอร์ ตอนแรกฉันลองทั้งสองคำสั่งตามลำดับ:

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

จากนั้นแอพของฉันไม่สามารถเชื่อมกับพอร์ต 80 ได้ฉันตรวจสอบด้วย getcap:

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

ถ้าฉันรัน setcap อีกครั้งสำหรับ cap_net_bind_service:

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

ฉันไม่เห็นอะไรเลยในหน้า man http://linux.die.net/man/8/setcapเกี่ยวกับการตั้งค่าความสามารถหลายอย่างและลองทำบางสิ่งด้วยความสิ้นหวัง:

# 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)

ฉันจะตั้งค่าความสามารถหลายอย่างได้อย่างไร

คำตอบ:


17

และการคาดเดาทางไวยากรณ์ครั้งสุดท้ายที่หมดหวัง:

# 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

กรุณาเลือก. คุณมีคำตอบที่ถูกต้อง
ctrl-alt-delor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.