“/ usr / bin / ping”은 기본 Fedora bash 색 구성표에서 노랑-온-레드로 표시됩니다. 무슨 뜻입니까? /usr/bin/ping /usr/bin/ping: ELF 64-bit

디렉토리를 나열 할 때 /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: -

에 따라 서로 다른 색상이 터미널에 무슨 뜻 이죠? 여기서 색상 해석을 나열하는 스크립트를 찾을 수있는 “yellow-on-red”는 “ca”를 의미합니다.

Fedora 기본 배쉬 색상 표에서 보이는 색상

“ca”는 무엇을 의미합니까? 아마이 파일이 다른 곳에서 hardlinked (됨을 의미 /usr/bin/ping/usr/ping같은 파일입니다)

추신 : Explaining Dirty COW 를 보면서 ping우분투 의 명령이 setuid 루트로 표시되는 이상한 질문이 있습니다.

setuid 루트 핑



답변

이것은 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

이렇게하면 ping로 실행하지 않고 원시 소켓을 열고 ICMP 패킷을 보내고받을 수 root있습니다.

setcap(8)capabilities(7)더 자세한 정보를 제공합니다.

역사적으로, pingsetuid는 root원시 소켓 으로 작동 하고 사용할 수 있도록 설치되었습니다 . 일단 기능이 사용 가능 해지면, 많은 배포판이 대신 사용 권한으로 전환합니다. 그러나 우분투 에는 설치 프로그램에 문제가있는 것이므로 pingsetuid가 여전히 설치되어 있습니다 root(기능 코드는 관련 관리자 스크립트 에서 비활성화되어 있으며 가능한 경우 기능을 사용하여ping 구성된 데비안에서 제공 됩니다).

ping맨 페이지 의 요구 사항을 설명 하여 :

ping필요 CAP_NET_RAW프로그램이 아닌 에코 쿼리 (참조를 위해 사용되는 경우 기능) 1을 실행하는 -N사용자가 에코 ICMP의 작성을 허가되어 있지 않은 경우 커널)가 아닌 원시 ICMP 소켓을 지원, 3하지 않는 경우 옵션) 또는 2) 소켓. 프로그램은 set-uid root로 사용될 수 있습니다.


답변