ディレクトリを一覧表示すると、赤い背景に黄色のテキストで表示されること/usr/bin
がわかります。ping
このファイルには特別な機能はありません。
$ file /usr/bin/ping
/usr/bin/ping: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for
GNU/Linux 2.6.32, BuildID[sha1]=2508ea2a85b70c68967b3e6345541430f5317d5f,
stripped
$ stat /usr/bin/ping
File: '/usr/bin/ping'
Size: 62096 Blocks: 136 IO Block: 4096 regular file
Device: 802h/2050d Inode: 4457229 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:ping_exec_t:s0
Access: 2016-11-01 10:02:57.332925719 +0100
Modify: 2016-06-22 14:01:14.000000000 +0200
Change: 2016-07-10 23:41:59.623796126 +0200
Birth: -
~によると端末のさまざまな色はどういう意味ですか?ここでは、"ca"を意味する"yellow-on-red"という色の解釈をリストするスクリプトを見つけることができます。
"ca"とはどういう意味ですか?おそらく、これはファイルが別の場所でハードリンクされていることを意味します(同じファイルです)/usr/bin/ping
。/usr/ping
PSを視聴するときにこの問題が発生しました。汚い牛を説明する、ping
Ubuntuのコマンドがsetuidルートとして表示されるのは奇妙に聞こえます。
ベストアンサー1
これはping
追加機能があることを意味します。
$ getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+ep
偶数(Fedoraでは最大30個):
$ getcap /usr/bin/ping
/usr/bin/ping = cap_net_admin,cap_net_raw+ep
これにより、ping
.NETで実行しなくてもRAWソケットを開き、ICMPパケットを送受信できますroot
。setcap(8)
そしてcapabilities(7)
詳細を提供してください。
歴史的に、ping
setuidは生のソケットとして実行され、生のroot
ソケットを使用できるようにインストールされました。多くのディストリビューションは、権限制御のために提供されるより細かいセグメンテーションのためにこれらの機能が利用可能になった後、これらの機能に移行しました。しかし、Ubuntuでは確かにインストーラに問題があるようです。したがって、ping
setuidはまだインストールされていますroot
(関数コードは関連管理者スクリプト、Debianでping
設定活用能力可能であれば)。
ping
マンページ要件を説明したがって:
ping
CAP_NET_RAW
1)プログラムがエコー以外のクエリに使用されている場合(オプション参照)-N
必要です。ソケット。このプログラムは set-uid ルートとして使用できます。
カーネル2.6.39以降で利用可能プログラムがICMPエコーメッセージを送受信できるようにする別のメカニズム:net.ipv4.ping_group_range
。これはFedora 31以降で使用され、アドオンなしでping
作業できます(特にルートレスコンテナ内)。setuidと機能なしでFedoraでPingをどのように機能しますか?もっと学ぶ。