'setcap' 覆盖最后一个功能。如何设置多个功能?

Ant*_*och 14 setcap capabilities

我想让 node.js 能够侦听端口 80,并关闭计算机。最初我按顺序尝试了这两个命令:

setcap cap_net_bind_service=+ep /usr/bin/nodejs
setcap cap_sys_boot=+ep /usr/bin/nodejs
Run Code Online (Sandbox Code Playgroud)

然后我的应用程序无法绑定到端口 80。我检查了 getcap:

# getcap /usr/bin/nodejs
/usr/bin/nodejs = cap_sys_boot+ep
Run Code Online (Sandbox Code Playgroud)

如果我再次为 cap_net_bind_service 运行 setcap:

# getcap /usr/bin/nodejs
/usr/bin/nodejs = cap_net_bind_service+ep
Run Code Online (Sandbox Code Playgroud)

我在手册页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)
Run Code Online (Sandbox Code Playgroud)

如何设置多个功能?

Ant*_*och 26

最后一个绝望的语法猜测得到了回报:

# 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
Run Code Online (Sandbox Code Playgroud)