유저레벨 프로세스가 루트권한을 획득할려면...
글쓴이: dolsemix / 작성시간: 금, 2004/05/14 - 6:34오후
제가 원하는 기능은 다음과 같습니다.
1. 일반 유저로 로그인
2. 유저레벨의 프로세스를 실행
3. 프로세스에서 루트 패스워드를 입력받음
4. 프로세스 자체에서 루트 인증하여 하드웨어 제어 기능 수행
한컴리눅스의 삼바서버 설정프로그램이 이런기능을 지원했던것 같은데 어떻게 구현하는지를 모르겠습니다.
나름대로 getuid/setuid 함수류를 이용하여 시도해 보았지만 접근방법이 틀린것 같네요...
프로세스에게 루트세션을 할당해줘야 할것 같은데...
아시는분 있으시면 한수 지도 바랍니다...
Forums:
[code:1]#include <stdio.h> #incl
혹시 이런걸 말씀하시는건지 질문의 의도를 정확하게 모르겠습니다..
관계없는 글이었다면 죄송..
' 형식이 내용을 규정한다. '
이건 정말 심심해서 만들어본겁니다 ㅡㅡa[code:1]#inclu
이건 정말 심심해서 만들어본겁니다 ㅡㅡa
' 형식이 내용을 규정한다. '
[code:1]$dolsemix@linux> ./a.out이 프
이렇게 하고싶습니다.
담배 고만 펴야겠다...
흐흠 ㅡㅡ? 중요한거만 있으면 된다고 생각했는데..뭐가 틀린건지.
흐흠 ㅡㅡ? 중요한거만 있으면 된다고 생각했는데..
뭐가 틀린건지..
터미널 제어부분은 넣지않았습니다 시간관계상. 귀찬고 ㅡㅡa..
패스워드부분 처리까지 할필요 없어서 안넣었습니다..
근데.. 제가 첨올린 코드랑 의도는 같은데 뭐가 다른건가요?
오늘진짜 기분 꿀꿀하고 심심해서.. 해봤습니다 ㅡㅡa
' 형식이 내용을 규정한다. '
좀 벗어난 얘기지만, sudo를 쓰는 편이 훨씬 낫지 않을까요?roo
좀 벗어난 얘기지만, sudo를 쓰는 편이 훨씬 낫지 않을까요?
root 패스워드를 여러명이 알 필요도 없고, 부적절한 시도가 있을시에는
로그도 남으니 말입니다.
그냥 디바이스 제어할 수 있는 프로그램을 만들어 놓고, sudo 로 실행시킵니다.
권한이 없을 경우에는 Permission denied 등등이 나오겠죠.
ifconfig 를 사용하여 interface의 어드레스를 바꾼다거나 할 때와 같은 경우라고
생각됩니다.
----
Let's shut up and code.
sudo를 가지고 다녀도 괜찬다면..:) 그것또한 나이스한 방법인
sudo를 가지고 다녀도 괜찬다면..
:) 그것또한 나이스한 방법인것 같습니다 ^^
p.s 가끔은 득행을 위한 노력 보다 머리(CPU)를 업그레이드 하고싶다.
' 형식이 내용을 규정한다. '
여러 의견 감사합니다.sudo를 사용하는 것도 좋은 방밥이긴 합니다.
여러 의견 감사합니다.
sudo를 사용하는 것도 좋은 방밥이긴 합니다. 제가 사용하고자 하는 환경(QNX6.21)에서는 컴파일이 안되는 문제가 있지만.... ^^;;
sudo 소스를 대충 분석해보니 감이 오네요.
음... 우선 setuid류의 함수를 이용하는 방법은 이미 시도해 보았습니다.
문제는 루트 패스워드를 입력받아 인증하는 방식이었는데.... sudo 소스가 좋은 참고가 되었습니다.
아래 소스를 컴파일하고 실행하는 순서는....
루트 패스워드를 알고 있더라도 2번과 3번 과정을 생략하는 것은 불가능한가요? 배포문제가 걸려서... 고객이 "set ID on execution" 퍼미션은 원치 않는다는.... 여튼 패스워드 인증문제는 해결했지만 역시 보안분야는 생각처럼 쉽지 않네요... ㅠㅠ
담배 고만 펴야겠다...
그러다면 su를 쓰면 될꺼같습니다만..[code:1]#includ
그러다면 su를 쓰면 될꺼같습니다만..
이렇게 하면.. chmod +s 할필요 없군요..
' 형식이 내용을 규정한다. '
[code:1]#include <security/pam_appl.h
이미 지나가버린 이야기인 것 같지만
인증절차 부분은 이런식으로 하는 것도 괜찮을 것 같은데...
실제로는 서비스를 만들어서요. :)
댓글 달기