pingにsetuid権限が必要なのはなぜですか? [コピー]

pingにsetuid権限が必要なのはなぜですか? [コピー]

次のコマンドを実行して、setuid権限を持つシステム上のいくつかのファイルを探しています。

sudo find / -perm -4000

/bin/pingリストに表示されることを確認しました。

pingにsetuid権限が必要な理由を説明できる人はいますか?

ベストアンサー1

機能するには、ping次のものを作成できる必要があります。生のネットワークソケット。これは通常権限のある操作です。

最新のLinuxシステムでできる「能力」を与えられた

たとえば、CentOS 7の場合:

$ ls -l /bin/ping
-rwxr-xr-x 1 root root 62088 Nov  7  2016 /bin/ping*

$ getcap /bin/ping
/bin/ping = cap_net_admin,cap_net_raw+p

Debian 9.1(拡張):

$ getcap /bin/ping
/bin/ping = cap_net_raw+ep

機能は、setuidプログラムによって付与された完全な「root」権限を付与することなく、よりきめ細かな形式の権限昇格を実行する新しい方法です。

機能がない場合、pingraw ネットワークソケットを作成するには setuid ルートが必要です。

おすすめ記事