ping에 setuid 권한이 필요한 이유는 무엇입니까? [복사]

ping에 setuid 권한이 필요한 이유는 무엇입니까? [복사]

다음을 실행하여 setuid 권한이 있는 시스템의 일부 파일을 찾고 있습니다.

sudo find / -perm -4000

/bin/ping목록에 나타나는 것을 확인했습니다 .

ping에 setuid 권한이 필요한 이유를 설명할 수 있는 사람이 있습니까?

답변1

작동 하려면 ping다음을 생성할 수 있어야 합니다.날것의네트워크 소켓. 이는 일반적으로 권한 있는 작업입니다.

최신 Linux 시스템에서할 수 있는"능력"을 부여받은

예를 들어 CentOS 7의 경우:

$ ls -l /bin/ping
-rwxr-xr-x 1 root root 62088 Nov  7  2016 /bin/ping*

$ getcap /bin/ping
/bin/ping = cap_net_admin,cap_net_raw+p

Debian 9.1(확장):

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

기능은 setuid 프로그램에서 부여한 전체 "루트" 권한을 부여하지 않고 보다 세분화된 형태의 권한 상승을 수행하는 새로운 방법입니다.

기능이 없으면 ping원시 네트워크 소켓을 생성하려면 setuid 루트가 필요합니다.

관련 정보