web-dev-qa-db-ja.com

ユーザーが機能CAP_SETFCAPを設定できません

問題は機能についてです。ユーザーがsetcapを使用して機能を設定できるようにする必要があります。ルートで呼び出すと、すべてうまくいきます。例:$ Sudo setcap cap_dac_override,cap_dac_read_search+ep ./bin_file

$ getcap ./bin_file
./bin_file = cap_dac_override,cap_dac_read_search+ep

しかし、ユーザー権限でコマンドを実行すると...

$ /sbin/setcap cap_dac_override,cap_dac_read_search+ep ./bin_file
unable to set CAP_SETFCAP effective capability: Operation not permitted

次の文字列を/etc/security/capability.confに追加しました:

cap_setfcap,cap_dac_override,cap_dac_read_search user

しかし、それでも機能しません。

4
user55204

あなたの/sbin/setcapは継承可能なセットにも許可されたセットにもCAP_SETFCAPビットを持っていないからです。ファイルの実効ビットも設定されていません。

そして、richardが言ったように、root以外のユーザーにこれらの2つの機能を付与した場合、セキュリティは意味がありません。

1
linerd

ユーザー/プロセスがcap_setfcapまたはcap_dac_overrideを持っている場合、ルートアクセスを取得するのは簡単です。

ユーザーが信頼されている場合は、それらをグループSudo/sudoersに追加でき(構成によって異なります)、Sudoを使用できます。

/etc/sudoers.d/にルールを追加して、ユーザーがsetcapのみを指定された方法でのみ実行できるようにすることもできます。ただし、これは誤った安心感を与えるだけです。

1
ctrl-alt-delor