'setcap' menimpa kemampuan terakhir. Bagaimana cara mengatur beberapa kemampuan?

9

Saya ingin memberikan node.js kemampuan untuk mendengarkan pada port 80, dan mematikan komputer. Awalnya saya mencoba dua perintah ini secara berurutan:

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

Kemudian aplikasi saya gagal mengikat ke port 80. Saya memeriksa dengan getcap:

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

Jika saya menjalankan setcap lagi untuk cap_net_bind_service:

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

Saya tidak melihat apa pun di halaman manual http://linux.die.net/man/8/setcap tentang pengaturan beberapa kemampuan, dan mencoba beberapa hal dengan putus asa:

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

Bagaimana cara mengatur beberapa kemampuan?

Antonius Bloch
sumber

Jawaban:

17

Dan satu tebakan sintaksis terakhir membuahkan hasil:

# 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
Antonius Bloch
sumber
silahkan centang. Anda memiliki jawaban yang benar.
ctrl-alt-delor