「setcap」は最後の機能を上書きします。複数の機能を設定するにはどうすればよいですか?


9

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)

複数の機能を設定するにはどうすればよいですか?

回答:


17

そして最後の絶望的な構文の推測が報われる:

# 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

チェックしてください。正解です。
ctrl-alt-delor 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.