web-dev-qa-db-ja.com

Linuxでsetcapを使用する

Cap_net_raw機能を(たとえば/ bin/ping)に追加するには、以下を使用します。

#setcap cap_net_raw=ep /bin/ping

Epの意味は何ですか?なぜここで必要なのですか?

20
Jake

これにより、「有効」(e)機能セットと「許可」(p)機能セットの両方のCAP_NET_RAWビットが設定されます。これらの2つのセットは、「継承可能な」セットとともに、プロセスが持つ、または設定できる機能を管理します。

詳細はこちら:

機能-Linuxのマニュアルページ

機能セット

各スレッドには、上記の機能を0個以上含む3つの機能セットがあります。

Effective-カーネルがスレッドのパーミッションチェックを実行するために使用する機能。

Permitted-スレッドが想定する機能(つまり、有効で継承可能なセットの制限スーパーセット)。スレッドが許可されたセットから機能を削除した場合、その機能を再取得することはできません(set-user-ID-rootプログラムをexec()しない限り)。

inheritable-execve(2)全体で保持される機能。 fork(2)を介して作成された子は、その親の機能セットのコピーを継承します。 exec()中の機能の処理については、以下を参照してください。 capset(2)を使用すると、スレッドは独自の機能セットを操作できます。CAP_SETPCAP機能がある場合は、別のプロセスのスレッドの機能セットを操作できます。

22
chown