Capabilities
‘setcap’ 覆蓋最後的能力。如何設置多個功能?
我想讓 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
如果我再次為 cap_net_bind_service 執行 setcap:
# getcap /usr/bin/nodejs /usr/bin/nodejs = cap_net_bind_service+ep
我在手冊頁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)
如何設置多個功能?
最後一個絕望的語法猜測得到了回報:
# 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