프로그래밍 상에서 root 권한 상승 가능한가요?

mg2000의 이미지

안녕하세요...

윈도우 비스타를 보면 시스템 디렉토리에 모듈을 복사하는 프로그램을 만들때...

시스템 디렉토리에 접근하기 위해 일시적으로 관리자 권한을 요청하도록 할 수 있는데요.

(사실, 이러한 방식은 리눅스가 원조 같지만...)

리눅스에서도 프로그래밍 상으로 root 권한이 필요한 작업들에 한해서만 권한 요청을 하는 것이

가능한가요?

C에서 그러한 것을 할려면 어떻게 해야 될런지...

fox9의 이미지

일단 실행파일에 suid 속성을 주시고 소유권을 root로 해주시면 됩니다.
chmod 맨페이지를 참조하시거나 suid로 검색해 보세요

anfl의 이미지


fox9님이 말씀하신대로 suid 속성을 처음부터 주지 않으면 불가능합니다.
그렇지만 원하는 시점에 root의 권한을 얻는건 아니고 항상 root의 권한으로 실행됩니다.
원하는 시점에 일반 user의 프로그램이 root의 권한을 얻을수 있다면 unix 시스템은 보안에 심각한 결함을 가지게 됩니다. 때문에 제가 알고 있는 한도 내에서는 원하는 시점에 일반 user의 권한을 가지는 프로세스가 root의 권한을 획득하는건 정상적인 방법으로는 불가능한걸로 알고 있습니다.


mg2000의 이미지

물론 USER가 root권한을 필요로 할때는 root의 암호를 알고 있어야 하는데...

그래도 위험하긴 하겠군요.

root권한이 필요한 부분은 별도의 모듈로 만드는 수 밖에 없는 건가요?

Necromancer의 이미지

프로그램잭으로는 없습니다.

루트권한이 필요한 부분에 setuid를 줘서 root로 실행되게 한 다음 pipe 통신등을 이용해야죠.

대표적인게 X-Windows죠. (그래픽카드 드라이버는 커널이 아닌 X서버 프로그램내에 다 들어 있습니다)

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

익명 사용자의 이미지

가능하지요.메일일랑 대주세요.

익명 사용자의 이미지

어떤 원리인지는 모르지만 가능합니다.
간단한 예로 데비안에서 aptitude 를 일반 사용자로 실행한 후 설치할 패키지를 선택하고 패키지를 설치 명령 'g' 키를 누르면 루트 패스워드 입력하라고 나옵니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.