shellscript로 명령을 넣었습니다. 그걸 php로 작성을 했는데요... 그걸 먼저 perl로 setuid를 써서 권한을 바꿔줘야하는데 그걸 모르겠어요.. 부탁드립니다. (- -)(__)
참고하시길 바랍니다..
검색의 생활화...
http://bbs.kldp.org/viewtopic.php?t=37670
p.s
제가 전에 검색한결과.. Perl에선 setuid를 지원하지 않는것같습니다.. 스크립트파일에 +s를 주어도 먹질 않구요..
다른 의견 있으신분 리플 부탁드립니다..
' 형식이 내용을 규정한다. '
참고 잘봤습니다. 그럼 C로 하면 방법이 있는것인지요...
ggojang
네..
c로 작성하실때 setuid를 포함시키시고요..
해당 명령어를 실행하는 코드를 넣으신후
컴파일후.. chmod 4755 filename을 주시면됩니다..
filename의 owner는 해당 권한으로 실행시킬 사용자를 지정하시면 됩니다.
root의 권한히 필요하시다면 chown root filename 이 되겠지요..
그럼.. 예제도 참고글에 있으니 참조하시길 바랍니다..
테스트를 해보았습니다. 아이디는 ggojang이구요. 먼저 root로 컴파일을 해습니다. 파일네임은 suid.c로 #include <stdio.h> #include <stdlib.h>
int main() { setuid(0); system("/etc/rc.d/init.d/named restart"); system("/usr/local/apache/bin/apachectl restart"); system("/etc/rc.d/init.d/httpd restart");
return 0; } 이렇게 해주구요 chown으로 컴파일된 파일을 ggojang.ggojang으로 바꾼다음에 chmod도 4755로 해주었습니다. -rwsr-xr-x 1 ggojang ggojang 13491 5월 18 11:38 suid [ggojang@daehanweb SetUid]$ ./suid [ggojang@daehanweb SetUid]$ id uid=612(ggojang) gid=612(ggojang) groups=612(ggojang) 이렇케 나오는군요... ggojang의 setuid를 해주려면 그폴더에 컴파일될 파일이 ggojang으로 되어있어야 하나요 아니면 그 유저를 지정해주어야하나요?
일단 setuid는 그 process가 실행되는동안
권한이 변합니다.. setuid(0)이 콜될때 root권한의 프로세스로 변하지요
system("/etc/rc.d/init.d/named restart"); system("/usr/local/apache/bin/apachectl restart"); system("/etc/rc.d/init.d/httpd restart");
그리고 위 명령어가 root 권한으로 실행이되고..
종료후엔 ggojang 권한으로 돌아오는겁니다..
이해가 되지 않으신다면 어떤식으로 사용하시려는지 말해주시면
설명하기 쉬울듯합니다..
root의 권한으로 실행하시려면 파일의 권한이 ggojang이 아니고
root로 되어있어야합니다..
chown root suid
소유권 잘못 되었네요.
위의 소스는 그냥 크론 같은것으로 돌리는게 좋을것 같습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
참고하시길 바랍니다..검색의 생활화...http://bbs
참고하시길 바랍니다..
검색의 생활화...
http://bbs.kldp.org/viewtopic.php?t=37670
p.s
제가 전에 검색한결과..
Perl에선 setuid를 지원하지 않는것같습니다..
스크립트파일에 +s를 주어도 먹질 않구요..
다른 의견 있으신분 리플 부탁드립니다..
' 형식이 내용을 규정한다. '
참고~~
참고 잘봤습니다.
그럼 C로 하면 방법이 있는것인지요...
ggojang
네..c로 작성하실때 setuid를 포함시키시고요..해당
네..
c로 작성하실때 setuid를 포함시키시고요..
해당 명령어를 실행하는 코드를 넣으신후
컴파일후.. chmod 4755 filename을 주시면됩니다..
filename의 owner는 해당 권한으로 실행시킬 사용자를 지정하시면 됩니다.
root의 권한히 필요하시다면 chown root filename 이 되겠지요..
그럼.. 예제도 참고글에 있으니 참조하시길 바랍니다..
' 형식이 내용을 규정한다. '
ㅁㅁㅁ
테스트를 해보았습니다.
아이디는 ggojang이구요.
먼저 root로 컴파일을 해습니다.
파일네임은 suid.c로
#include <stdio.h>
#include <stdlib.h>
int main()
{
setuid(0);
system("/etc/rc.d/init.d/named restart");
system("/usr/local/apache/bin/apachectl restart");
system("/etc/rc.d/init.d/httpd restart");
return 0;
}
이렇게 해주구요
chown으로 컴파일된 파일을 ggojang.ggojang으로 바꾼다음에 chmod도 4755로 해주었습니다.
-rwsr-xr-x 1 ggojang ggojang 13491 5월 18 11:38 suid
[ggojang@daehanweb SetUid]$ ./suid
[ggojang@daehanweb SetUid]$ id
uid=612(ggojang) gid=612(ggojang) groups=612(ggojang)
이렇케 나오는군요...
ggojang의 setuid를 해주려면 그폴더에 컴파일될 파일이 ggojang으로 되어있어야 하나요 아니면 그 유저를 지정해주어야하나요?
ggojang
일단 setuid는 그 process가 실행되는동안권한이 변합니다
일단 setuid는 그 process가 실행되는동안
권한이 변합니다.. setuid(0)이 콜될때 root권한의 프로세스로 변하지요
system("/etc/rc.d/init.d/named restart");
system("/usr/local/apache/bin/apachectl restart");
system("/etc/rc.d/init.d/httpd restart");
그리고 위 명령어가 root 권한으로 실행이되고..
종료후엔 ggojang 권한으로 돌아오는겁니다..
이해가 되지 않으신다면 어떤식으로 사용하시려는지 말해주시면
설명하기 쉬울듯합니다..
root의 권한으로 실행하시려면 파일의 권한이 ggojang이 아니고
root로 되어있어야합니다..
' 형식이 내용을 규정한다. '
소유권 잘못 되었네요.
소유권 잘못 되었네요.
위의 소스는 그냥 크론 같은것으로 돌리는게 좋을것 같습니다.
위의 소스는 그냥 크론 같은것으로 돌리는게 좋을것 같습니다.
댓글 달기