「ep」機能とはどういう意味ですか?

「ep」機能とはどういう意味ですか?
root@macine:~# getcap ./some_bin
./some_bin =ep

"ep"とはどういう意味ですか?このバイナリにはどのような機能がありますか?

ベストアンサー1

# getcap ./some_bin
./some_bin =ep

バイナリには、p最初から許可された()機能と有効な()機能の両方があります。e

機能のテキスト表現では、先行は=次のようになります。all=cap_to_text(3)マンページから:

支配演算子があり、関数リストが提供されていない場合、=演算リストは以下を参照すると仮定されます。みんな能力。たとえば、次の3つのセクションは互いに同じです(完全に空の機能セットを表します) all==cap_chown,<every-other-capability>=

これらのバイナリは必要なものは何でも構いません。一般的なデスクトップシステムでは、すべてを含む機能の境界セットによってのみ制限されます(そうしないと、setuidバイナリはsu期待どおりに機能しません)。

これは、使用されたテキスト表現の「知っているもの」にすぎません。すべての意味のあるビットは、libcap印刷されるsecurity.capabilityファイルの拡張属性で有効です。getcap/file/path =ep存在する;のための security.capability/file/path =(後に=何もない)が印刷されます。


まだ確信していない人がいる場合は、次の簡単な実験をしてください。

# cp /bin/ping /tmp/ping   # will wipe setuid bits and extented attributes
# su user -c '/tmp/ping localhost'
ping: socket: Operation not permitted
# setcap =ep /tmp/ping
# su user -c '/tmp/ping localhost'  # will work because of cap_net_raw
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.073 ms
^C
# setcap = /tmp/ping
# su user -c '/tmp/ping localhost'
ping: socket: Operation not permitted

ご注意ください、ファイル機能も異なります。削除済み能力( capset -r /file/path),ファイル機能は、実行時にファイルがAmbientセットを継承するのを防ぎます。

ファイル機能の1つの微妙さは、=ep境界セットが完全でないとカーネルがプログラムの=ep実行を防ぐことです(機能愚かなバイナリのセキュリティチェックセクションで説明されています)。capabilities(7)マンページ)。

おすすめ記事