web-dev-qa-db-ja.com

"/ usr / bin / ping"は、デフォルトのFedora bashカラースキームで赤黄色で表示されます-どういう意味ですか?

ディレクトリをリストするとき/usr/binpingが赤黄色で表示されていることがわかります。

ping shown yellow-on-red

ファイルには特別な機能はありません。

$ 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」を意味します。

Colors seen in Fedora default bash coloring scheme

"ca"はどういう意味ですか?多分それはこのファイルが他の場所からハードリンクされていることを意味します(/usr/bin/pingおよび/usr/pingは同じファイルです)

追伸 Dirty COWの説明 を見ているときに質問が発生しました。Ubuntuのpingコマンドがsetuid rootとして表示されており、奇妙に聞こえます。

setuid root ping

32
David Tonhofer

これは、pingに追加の機能があることを示しています。

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

または(Fedoraの場合):

_$ getcap /usr/bin/ping
/usr/bin/ping = cap_net_admin,cap_net_raw+ep
_

これにより、pingrootとして実行しなくても、未加工のソケットを開く(およびICMPパケットを送受信する)ことができます。

setcap(8) および capabilities(7) に詳細が記載されています。

歴史的に、pingはsetuidとしてインストールされ、rootとして実行され、rawソケットを使用できるようになりました。機能が使用可能になると、多くのディストリビューションが代わりにそれらを使用するように切り替わりました。それは、パーミッションに対して提供するきめ細かい制御が望ましいように思えるためです。しかし、Ubuntuでは 明らかにインストーラーに問題があります なので、pingはまだインストールされていますsetuid root(機能コードは 関連するメンテナーで無効になっています)スクリプト 、これはpingが構成されているDebianからのものです 機能を使用して 可能な場合)。

pingマンページ その要件を説明 したがって、

pingを実行するには_CAP_NET_RAW_機能が必要1)プログラムが非エコークエリに使用される場合(_-N_オプションを参照)、または2)カーネルが非raw ICMPをサポートしない場合ソケット、または3)ユーザーがICMPエコーソケットの作成を許可されていない場合。プログラムはset-uid rootとして使用できます。

51
Stephen Kitt