fox9님이 말씀하신대로 suid 속성을 처음부터 주지 않으면 불가능합니다.
그렇지만 원하는 시점에 root의 권한을 얻는건 아니고 항상 root의 권한으로 실행됩니다.
원하는 시점에 일반 user의 프로그램이 root의 권한을 얻을수 있다면 unix 시스템은 보안에 심각한 결함을 가지게 됩니다. 때문에 제가 알고 있는 한도 내에서는 원하는 시점에 일반 user의 권한을 가지는 프로세스가 root의 권한을 획득하는건 정상적인 방법으로는 불가능한걸로 알고 있습니다.
일단 실행파일에 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' 키를 누르면 루트 패스워드 입력하라고 나옵니다.
댓글 달기