user_struct 정보를 가져올 수 있나요??

inner9771의 이미지

커널에서 user_struct 의 정보를 가져올 수 있는 방법 있나요???
모든 사용자를 순차적으로요...
아니면 현재 접속한 사용자의 정보만가져오는거나....

user_struct 다 안가져오고 uid만 가져올 수 있는 방법은 없나요???

커널에서는 해쉬테이블로 접속자들끼리 포인팅을 하는 것 같은데 uid로 해쉬테이블 상에서 현재 자기 위치를 알 수 있는 방법은 없나요???

하나가 안 풀리니까 다 안풀리네요....

최종 목적은 현재 접속자 수를 알아내는 모듈을 짜는건데
접속자 정보에 접근할 시스템콜을 찾지 못해서요...
user_struct 라도 접근할 수 있으면 소유한 프로세스 수 같은거 체크해서 카운트하려고 하는데요...
아직 단 한 건의 user 정보에도 접근하지 못했네요...ㅜ_ㅜ

아 참... 그리고 current->user 하면 현재 유저는 최소한 나와야 하지 않나요??
왜 아무것도 나오지 않는지...ㅜ_ㅜ

제발 이 중에 단 한가지라도...... 풀 수 있는 실마리의 가능성이라도....
알려주세요.......ㅜ_ㅜ 절망 직전입니다.....ㅜ_ㅜ

june의 이미지

pwd.h에 있는 struct passwd를 사용하시면 되지 않을까요?
여기에 있는 함수들 사용하면 등록된 사용자 나오고.. ( getpwname() 등등.)
UID도 뽑을수 있어요..
여기서 좀 더 어떻게 뭔가를 추가하시면 나올 듯 하네요..
도움이 되셨나 몰라...
그럼 즐건 월요일 오후!!! :oops:

커피는 블랙이나 설탕만..

pastime의 이미지

current->uid 로 현재 프로세스를 실행하는 사용자의 uid 값을 얻을 수 있습니다.

하지만 커널은 모든 사용자의 정보를 유지하는 것이 아니라
모든 프로세스의 정보를 유지하는 것이기 때문에
모든 사용자의 정보를 순차적으로 접근하는 것은 불가능하다고 할 수 있습니다.

간단히 생각하기로
모든 프로세스를 순회하면서 uid 를 세는 것이 좋을 듯 합니다.
물론 루트로 실행되는 커널 쓰레드 등이 있으니 이러한 것은 제외해야 할테고

적절한 범위의 uid 값 만을 카운트 하던지
쉘 프로세스의 수를 세는 방법등이 있지 않을까 합니다.
(꽁수로 utmp 파일을 읽는 방법도 있을 수 있겠군요.. -_-)

참고로 alloc_uid() 함수에서 uid 로 user_struct 에 접근하는 코드 부분입니다.

87         struct user_struct **hashent = uidhashentry(uid);
88         struct user_struct *up;
89 
90         spin_lock(&uidhash_lock);
91         up = uid_hash_find(uid, hashent);
92         spin_unlock(&uidhash_lock);

댓글 달기

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