'setcap' sobrescribe la última capacidad. ¿Cómo configuro múltiples capacidades?


9

Quiero darle a node.js la capacidad de escuchar en el puerto 80 y apagar la computadora. Inicialmente probé estos dos comandos en secuencia:

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

Entonces mi aplicación no se pudo vincular al puerto 80. Lo comprobé con getcap:

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

Si ejecuto setcap nuevamente para cap_net_bind_service:

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

No veo nada en la página de manual http://linux.die.net/man/8/setcap sobre la configuración de múltiples capacidades, e intento algunas cosas con desesperación:

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

¿Cómo configuro múltiples capacidades?

Respuestas:


17

Y una última conjetura de sintaxis desesperada vale la pena:

# 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

Por favor, marca. Tienes la respuesta correcta.
ctrl-alt-delor
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.