geteuid()에 대한 질문입니다.
글쓴이: anaud2 / 작성시간: 화, 2008/09/30 - 10:13오후
제가 분석해야하는 소스에서 geteuid()를 사용합니다.
그래서 검색해본결과 조인시 위키에서 아래와 같이 설명이 되는데요 읽어보고 이해가 되었다가 마지막 한문장이 이해를 막습니다.
"getuid()는 현재 프로세스의 실제 유저 아이디를 얻어온다.
geteuid()는 현재 프로세스의 유효 유저 아이디(effective user ID)를 언어온다.
실제 유저 아이디는 프로세스를 호출한 유저의 아이디이다. 유효 유저 아이디는 실행된 파일에 설졍된 SID를 가지는 아이디이다. "
geteuid() 유효 유저 아이디라는데 실행된 파일에 설정된 SID를 가지는 아이디 이말이 무슨말일까요
ls -al 결과 -
drwxr-xr-x 2 anaud2 bank 4096 Sep 30 14:59 test
어떤파일을 실행을 한다고 한다면 그파일의실행 권한, 즉 위에서 test 파일의 실행권한을 가진 anaud2 가 SID를 가지는 아이디일까요?
제 감으로 이런거 같았는데 해보니까 아니더라구요ㅠ
유저아이디를 얻어오는건 알겠는데 유효 유저 아이디는 무슨 말인가요?
Forums:
setuid
우리가 많이 쓰는 /usr/bin/passwd도
퍼미션이 4755로 setuid가 걸려있습니다.
setuid에 대해서 알아보세요
man setuid도 도움이 되겠네요
$ gcc -Wall -O2 test.c -o test
$ ls -al test
-rwxr-xr-x 1 noth noth 6704 2008-09-30 22:36 test
$ ./test
getuid() ----> 1000
geteuid() ----> 1000
$ sudo chown root test
$ sudo chmod u+s test
$ ls -al test
-rwsr-xr-x 1 root noth 6704 2008-09-30 22:36 test
$ ./test
getuid() ----> 1000
geteuid() ----> 0
없음
댓글 달기