raw 소켓 생성이 안됩니다..
글쓴이: sharefeel / 작성시간: 금, 2004/02/13 - 8:52오후
icmp ping을 하기 위해서 소켓을 생성하려고 하는데..
일반 유저 권한으로 raw 소켓이 생성이 안됩니다.
소스 코드 id->sockfd[i] = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); if (id->sockfd[i] < 0) { DPRINTF("socket() returned %d\n\t%s\n", id->sockfd[i], strerror(errno)); } 실행 결과 id.c [41] id_init socket() returned -1 Permission denied
root 권한으로 실행하면 소켓 잘 생성됩니만..
raw 소켓 생성하려면 root권한이 반드시 필요한 것인지요..
플랫폼은 솔라리스 입니다..
ps. 솔라리스에선 일반 유저는 ping이 path도 안걸려 있네요..
Forums:
네 raw 소켓을 쓰려면 root 권한이 필요합니다.따라서 setui
네 raw 소켓을 쓰려면 root 권한이 필요합니다.
따라서 setuid 된 바이너리가 필요합니다.
# ls -l /usr/sbin/ping
-r-sr-xr-x 1 root bin 19452 Jul 15 1998 /usr/sbin/ping
---
http://coolengineer.com
raw socket의 경우 원한다면 IP header를 제어할 수 있습니
raw socket의 경우 원한다면 IP header를 제어할 수 있습니다.
그래서 보안상의 문제도 있고 해서 루트만이 raw socket을 생성/사용할 수 있습니다. :-)
Life with fun...
그러니까 내 데이타가 아닌데도, 로우소켓으로 IP 데이타를 잡아볼수 있다
그러니까 내 데이타가 아닌데도, 로우소켓으로 IP 데이타를 잡아볼수 있다는데에 문제가 발생하니, root 권한이 있는 사용자만이 가능하게 되어 있는거죠.
힘내세요.
댓글 달기