다음을 실행하여 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 루트가 필요합니다.