'setcap' sobrescreve a última capacidade. Como faço para definir vários recursos?

9

Eu quero dar ao node.js a capacidade de escutar na porta 80 e desligar o computador. Inicialmente tentei estes dois comandos em sequência:

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

Em seguida, meu aplicativo não foi vinculado à porta 80. Eu verifiquei com getcap:

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

Se eu executar o setcap novamente para cap_net_bind_service:

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

Eu não vejo nada na página man link sobre a configuração de vários recursos e experimento algumas coisas em desespero:

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

Como defino vários recursos?

    
por Antonius Bloch 26.02.2015 / 00:33

1 resposta

14

E uma última suposição de sintaxe desesperada vale a 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 26.02.2015 / 00:35