프로그래밍 상에서 root 권한 상승 가능한가요?
글쓴이: mg2000 / 작성시간: 화, 2007/07/24 - 10:25오전
안녕하세요...
윈도우 비스타를 보면 시스템 디렉토리에 모듈을 복사하는 프로그램을 만들때...
시스템 디렉토리에 접근하기 위해 일시적으로 관리자 권한을 요청하도록 할 수 있는데요.
(사실, 이러한 방식은 리눅스가 원조 같지만...)
리눅스에서도 프로그래밍 상으로 root 권한이 필요한 작업들에 한해서만 권한 요청을 하는 것이
가능한가요?
C에서 그러한 것을 할려면 어떻게 해야 될런지...
Forums:


일단 실행파일에 suid
일단 실행파일에 suid 속성을 주시고 소유권을 root로 해주시면 됩니다.
chmod 맨페이지를 참조하시거나 suid로 검색해 보세요
fox9님이
fox9님이 말씀하신대로 suid 속성을 처음부터 주지 않으면 불가능합니다.
그렇지만 원하는 시점에 root의 권한을 얻는건 아니고 항상 root의 권한으로 실행됩니다.
원하는 시점에 일반 user의 프로그램이 root의 권한을 얻을수 있다면 unix 시스템은 보안에 심각한 결함을 가지게 됩니다. 때문에 제가 알고 있는 한도 내에서는 원하는 시점에 일반 user의 권한을 가지는 프로세스가 root의 권한을 획득하는건 정상적인 방법으로는 불가능한걸로 알고 있습니다.
리눅스에서는 불가능한 모양이군요.
물론 USER가 root권한을 필요로 할때는 root의 암호를 알고 있어야 하는데...
그래도 위험하긴 하겠군요.
root권한이 필요한 부분은 별도의 모듈로 만드는 수 밖에 없는 건가요?
프로그램잭으로는
프로그램잭으로는 없습니다.
루트권한이 필요한 부분에 setuid를 줘서 root로 실행되게 한 다음 pipe 통신등을 이용해야죠.
대표적인게 X-Windows죠. (그래픽카드 드라이버는 커널이 아닌 X서버 프로그램내에 다 들어 있습니다)
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
ㅌㅌ
가능하지요.메일일랑 대주세요.
어떤 원리인지는 모르지만 가능합니다. 간단한 예로
어떤 원리인지는 모르지만 가능합니다.
간단한 예로 데비안에서 aptitude 를 일반 사용자로 실행한 후 설치할 패키지를 선택하고 패키지를 설치 명령 'g' 키를 누르면 루트 패스워드 입력하라고 나옵니다.