Node.jsにポート80でリッスンし、コンピューターをシャットダウンする機能を与えたいのですが。最初に、これらの2つのコマンドを順番に試しました。
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
Manページに何も表示されません 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