핑에 setuid 비트가 필요한 이유는 무엇입니까?


답변:


15

ping은 ICMP 패킷을 생성 및 수신해야하며 일반적으로 "raw sockets"(루트 (cap_net_raw)로 제한되는 기능인 시스템의 다른 트래픽을 스니핑하고 방해하기 위해 남용 될 수 있기 때문에 사용되는 기능)를 사용하여 수행됩니다.

많은 배포판에서 이제 전체 setuid 루트 대신 cap_net_raw 권한 ( capabilities(7)getcap(8)매뉴얼 페이지 참조)을 ping합니다 . 그러나 확장 된 속성 (xattrs)을 지원하려면 커널과 파일 시스템이 모두 필요하며 일부 "최소"시스템에서는이를 비활성화합니다.

또한 최근에는 특별한 "ICMP"소켓 유형 이 추가되어 추가 권한없이 ICMP Echo 메시지 만 보낼 수 있습니다. ping 명령은 아직 업데이트되지 않았습니다.


Capabilities (7)는 xattrs를 사용하지 않는다고 생각합니다.
ggg

2
@ggg :하지만 그렇습니다. 시도하십시오 getfattr --dump --match=.* /sbin/ping.
user1686
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.