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
マニュアルページには何も表示されません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)
複数の機能を設定するには?
ベストアンサー1
最後の切迫した構文の推測が成果を上げました。
# 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