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


32

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

답변:


51

이것은 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로 사용될 수 있습니다.


1
고마워 Stephen. 내 시스템 지식이 약합니다! 나는 기능이 존재한다는 것을 몰랐고, 커널 2.2 이후로 거기에 있었다 ... 1999 년 1 월 26 일 . capabilities(7)매뉴얼 페이지 에 따르면 , 표준은 기능을 통제하지 않지만 Linux 기능 구현은 철회 된 POSIX.1e 초안 표준을 기반으로합니다. 여기
David Tonhofer 2016

그의 화면 스냅 샷은 suid root를 나타냅니다.
Joshua

1
우분투의 @Joshua는 그렇습니다. 그러나 문제는 Fedora (첫 번째 스크린 샷)에 관한 것입니다.
Stephen Kitt

2
다른 시스템에서 setuid root의 이유는 덜 세분화 된 권한을 통해 동일합니다 (ICMP 패킷을 보내고받을 수 있음).
Kevin Reid

@KevinReid에게 감사드립니다. 내 답변에 추가했습니다. (우분투 설명은 내가 생각했던 것보다 조금 더 복잡하다!)
스티븐 키트
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.