実行可能ファイルで「setcap」追加設定を解除します。

実行可能ファイルで「setcap」追加設定を解除します。

一つ回答「一般ユーザーが 1024 未満のポートでリッスンできるようにする」という質問に対して、次のコマンドを指定して実行可能ファイルに追加の権限を付与します。setcapこれにより、プログラムは1024未満のポートにバインドできます。

setcap 'cap_net_bind_service=+ep' /path/to/program

これらの権限を取り消す正しい方法は何ですか?

答え1

ファイルから機能を削除するには、この-rフラグを使用します。

setcap -r /path/to/program

これによりプログラムに機能がなくなります。

答え2

@stephen-harrisが投稿した内容は正しいです。ただし、プログラムに追加されたすべての機能は一度に削除されます。特定の機能を削除するには、次のようにします(質問の例に従って)。

setcap 'cap_net_bind_service=-ep' /path/to/program

「-」記号に注意してください。次のように実行可能ファイルの機能を確認できます。

getcap /path/to/program

の場合、 '-ep' は '+ep' で追加した内容だけを削除するので、setcap -rすべての機能が消えて結果が空になります。getcap

これはいくつかの機能を提供し、それを選択的に削除したい場合に便利です。

関連情報