2つの異なる機能セットを1つのファイルに設定できますか?

2つの異なる機能セットを1つのファイルに設定できますか?

ファイルの許可されたセットと継承されたセットに異なる機能を設定したいと思います。このような:

sudo setcap cap_fsetid=ei mybinary
sudo setcap cap_kill=ep mybinary

ただし、後者のコマンドは前のコマンドを上書きします。このように機能を管理することは可能ですか?

ベストアンサー1

getcap現在設定されている機能のリストを取得するために使用できます。スペースで区切られているので、次のように追加できます。

sudo setcap first_capability=itsvalue executable_fname
sudo setcap "$(getcap executable_fname) newcap=value" executable_fname

(スペースで区切られた機能のリスト:で引用されているman setcap、で説明されていますman cap_from_text

注:設定する前にお問い合わせください。いいえ競合状態からの保護 - 他のプロセスが同時に機能を設定しないようにしてください。

特定の時点のすべての機能を知っている方が簡単です。

sudo setcap "first_capability=itsvalue newcap=value" executable_fname

これに関連して+機能=を向上させるために使用できます。ここでは=読みやすくなりますが、+状態をより予測可能に構築するいくつかの特別なケースがあります。特に、2 つの異なるタスクに対してリストされた機能には共通のサブセットがあります。たとえば、次の2つは同じではありません。

$ sudo setcap "first=i second=p first,second=e" executable
$ sudo setcap "first=i second=p first,second+e" executable

2番目は次のとおりです。

$ sudo setcap "first=ie second=pe" executable

おすすめ記事