Thursday, April 3, 2008

Process User IDs

user ID에는 네가지가 존재한다. real, effective, saved, filesystem 이다. real은 부모 프로세스의 user ID 이고, effective ID는 현재 프로세스의 user ID이다. fork하면 effective ID가 상속되고, exec해도 setuid 같은 경우를 제외하고는 안바뀐다. setuid 같은 경우란 특정 프로그램을 실행하는 경우 그 프로그램 바이너리의 user ID로 effective ID가 바뀌어 사용되는 경우이다. 예를 들어 /usr/bin/passwd는 root 권한으로 동작한다. 그래서 user가 passwd를 실행하면 그 실행 프로세스는 user ID에서 root ID 권한으로 바뀌어 동작한다는 얘기다. saved ID는 exec으로 권한이 바뀐 경우 그 전의 ID를 적어놓는 것이고, 프로세스가 fork하면 saved ID권한을 자식에게 상속한다.

No comments:

Post a Comment