ping root권한?

nayana의 이미지

현재 os 는 redhat 9.0 입니다.
ping util 이 bin에 있습니다.

Quote:
-rwsr-xr-x 1 root root 28628 1월 25 2003 ping

보시면 root권한이 아니어도 ping 을 쓸수 있습니다.

임으로 제가 ping 을 하나 만들고

Quote:
-rwsrwsr-x 1 nayana developer 39882 2월 3 15:37 myping
-rwxr--r-- 1 nayana developer 5127 2월 3 15:37 myping.c

권한을 chmod 6775 myping이라고 주었습니다.
그런데 일반 유저권한에서 실행시키면
Quote:
o( ")o $ ./myping www.joinc.co.kr
socket fail: Operation not permitted

권한이 없다고 나옵니다.
일반유저도 ping을 쓰려면 어떻게 해야하나요?
override의 이미지

ping 프로그램엔 root로 setuid가 걸려있습니다.

즉 일반 사용자가 ping 을 사용하더라도 실제

사용중엔 root의 권한으로 돌아가게 되는거죠 ;;

nayana의 이미지

Quote:
ping 프로그램엔 root로 setuid가 걸려있습니다

그러기 때문에 chmod 6775라는 권한을 준것입니다.

제가알고 싶은것은 이렇게 했는데도 왜 일반유저 권한에서 실행할수없냐는것입니다.

indie의 이미지

override님 말씀대로 ping은 root소유로 setuid가 걸려 있습니다.
nayana님은 nayana권한으로 setuid글 거셨구요.

집에나 갈까?

nayana의 이미지

Quote:
nayana님은 nayana권한으로 setuid글 거셨구요

그래서 님의 말쓰맫로 root권한으로 들어가서

Quote:
[root@gs myping]# chmod 6775 myping
[root@gs myping]# ll
합계 24
-rwsrwsr-x 1 nayana developer 14486 2월 3 17:12 myping
-rwxr--r-- 1 nayana developer 5126 2월 3 17:11 myping.c

바꾸고 일반유저로 들어가서 실행 하여도

Quote:
(o^^o) $ ./myping www.joinc.co.kr
socket fail: Operation not permitted

안되네요!!!

최종호의 이미지

nayana wrote:

그래서 님의 말쓰ㅤㅁㅐㄷ로 root권한으로 들어가서
[root@gs myping]# chmod 6775 myping
...

[root@gs myping]# chown root myping

하시면 되겠습니다.

흠.. 이거 채팅 같네요.. ㅡ.ㅡ;;

indie의 이미지

chown root:root myping
chmod 4755 myping
이렇게 하시면 될것 같은데요..

집에나 갈까?

nayana의 이미지

감사합니다.^^

한가지 질문을 더 드리겠습니다. 어떻게 보면 생뚱맞은 소리일수가
있는데 !!!!

코드로 프로그램을 짜서 일반유저도 실행하게 할수 있는 방법이 있나요?

indie의 이미지

코드로 프로그램을 짜서 일반유저도 실행하게 할수 있는 방법을 물어 보셨는데
제가 질문을 잘 이해하지 못해서 그러는데
그냥 other에게도 실행 권한을 주면 되지 않나요?

집에나 갈까?

nayana의 이미지

other에게도 실행 권한을 주면 되지 않나요?

혹시 -rwxr-xr-x 이부분에서 맨 끝에있는 x 부분을 말씀하시는건가요?

Quote:
ping 프로그램엔 root로 setuid가 걸려있습니다.

즉 일반 사용자가 ping 을 사용하더라도 실제

사용중엔 root의 권한으로 돌아가게 되는거죠 ;;

결론은 이것때문에 안됩니다.

익명 사용자의 이미지

nayana wrote:
Quote:
ping 프로그램엔 root로 setuid가 걸려있습니다.

즉 일반 사용자가 ping 을 사용하더라도 실제

사용중엔 root의 권한으로 돌아가게 되는거죠 ;;

결론은 이것때문에 안됩니다.

myping.c 가 단순히 *nix 의 ping.c 소스라면 일반유저로 컴파일하여 소유권을 갖어도 동작하지 않습니다.

nayana의 이미지

이주제의 핵심의 약간 벗어난다는 생각이듭니다.^^;
이 문제의 핵심은 코드로 표현해서 일반유저에서도 실행을 가능하게 하려고 하는건데...^^
방법이 없다고 보아야 하는것이 옳은것이닞요?

jedi의 이미지

nayana wrote:
이주제의 핵심의 약간 벗어난다는 생각이듭니다.^^;
이 문제의 핵심은 코드로 표현해서 일반유저에서도 실행을 가능하게 하려고 하는건데...^^
방법이 없다고 보아야 하는것이 옳은것이ㅤㄴㅣㅈ요?

위에 있는 프로그램이 일반유저로 동작안하는 이유는 소유자가 root가 아니기 때문입니다.
-rwsrwsr-x 1 nayana developer 14486 2월 3 17:12 myping 
                       ~~~~~~~~~~~~~~

이것만 root 로 바꾸면 동작합니다.
만약 파일 소유자를 root로 바꾸지 못한다면 불가능 하겠죠. 크래킹이라는 과정을 거치기 전까지는.....

+++ 여기부터는 서명입니다. +++
국가 기구의 존속을 위한 최소한의 세금만을 내고, 전체 인민들이 균등한 삶을
영위할 수 있는 착취가 없는 혁명의 그날은 언제나 올 것인가!
-- 조정래, <태백산맥> 중에서, 1986년

버려진의 이미지

음 맞게 이해한건지 모르겠지만..

명령어로 가능한건 100% 프로그래밍으로도 가능한거 아시죠? ;;

nayana의 이미지

Quote:
음 맞게 이해한건지 모르겠지만..

명령어로 가능한건 100% 프로그래밍으로도 가능한거 아시죠? ;;


즉 이야기는 크래킹을 하지 않아도 가능하다는 말씀이신건가요?
Mins의 이미지

ping 을 만들기 위해서는 raw socket 을 사용해야 되는데, 리눅스에서 raw socket 은 root 권한으로만 가능 합니다.

고로 일반 유저의 권한만으로는 raw socket 을 사용할수 없으므로, ping 을 실행시킬수 없습니다. ^^

indie의 이미지

nayana wrote:

코드로 프로그램을 짜서 일반유저도 실행하게 할수 있는 방법이 있나요?

nayana wrote:

혹시 -rwxr-xr-x 이부분에서 맨 끝에있는 x 부분을 말씀하시는건가요?
인용 wrote:

ping 프로그램엔 root로 setuid가 걸려있습니다.

즉 일반 사용자가 ping 을 사용하더라도 실제

사용중엔 root의 권한으로 돌아가게 되는거죠 ;;

결론은 이것때문에 안됩니다.

ping프로그램을 짜서 일반유저 권한으로 실행하게 할수 있는 방법을 물어 보셨어야 했을거 같군요.

위에서 Mins님께서 말씀하신 이유로 일반 유저권한으론 힘들것 같습니다.

집에나 갈까?