리눅스 ruid, euid 저장 위치

whobc의 이미지

리눅스에서 프로세스와 ruid, euid에 대해 공부하던 중 턱 막히는 부분이 있어 질문드립니다.

먼저 ruid와 euid에 대해 알고 있는 내용은 이렇습니다.

프로그램이 실행되어 프로세스가 되면 실행자의 id로 그 프로세스의 ruid가 세팅된다.

만약 이 프로그램이 setuid가 설정되어 있었다면 euid는 그 프로그램의 소유자의 id로,

setuid가 설정되어 있지 않았다면 euid는 프로세스 실행자의 id 즉, ruid와 같게 세팅된다.

리눅스 커널은 실행된 프로세스의 euid를 보고 판단하여 그 프로세스가 시스템 내의 특정 자원에 접근해도 되는지 판단하고 이를 허용 또는 불허한다.

또, 실행된 프로세스가 프로세스 내에서 다른 프로그램을 실행시킨다면 리눅스 커널은 실행되어 있는 프로세스의 ruid를 가지고 새로 실행되는 프로세스의 ruid로 설정한다.

여기까지 입니다.

그런데 리눅스 커널이 프로세스의 ruid와 euid를 보고 그 다음 행위를 판단할 수 있다는 얘기는

커널이 실행되어 있는 프로세스의 ruid와 euid에 대한 정보를 메모리 상의 어딘가에 저장해 놓고 관리한다는 얘기가 되지 않나요?

그래서 리눅스 PCB의 필드 또는 /proc 디렉터리에 있지 않을까 하여 뒤져 보았으나 ruid와 euid에 대한 정보를 찾지 못했습니다.

리눅스는 도대체 어디에 실행 프로세스의 ruid와 euid를 저장하고 관리하나요?

질문을 요약하겠습니다.

1. 리눅스 커널은 실행되는 프로세스의 ruid와 euid를 메모리 상의 어딘가에는 저장하여 관리를 하고 있죠?

2. 프로세스의 ruid와 euid를 저장하고 관리하는 자료구조가 있는 영역은 어디인가요?

어느 질문에 대해서라도 정보를 조금이라도 알고 계신 분들이 계시다면 어떤 코멘트도 감사할 것 같습니다.

 의 이미지

리눅스 커널의 setresuid, getresuid syscall 구현을 살펴보면 금방 알 수 있겠죠?

http://lxr.free-electrons.com/source/kernel/sys.c

whobc의 이미지

커널 코드를 보면 되겠군요. 실력을 좀 더 쌓아서 코드를 완전 이해할 수 있도록 해야겠습니다. 좋은 팁 감사합니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.