真实用户ID
真实用户ID是指启动进程的用户的uid。它会被设定成该进程的父进程的真实用户ID,而且在exec调用期间不会变动。通常,登陆进程会将用户的login shell的真实用户ID设定成该用户的ID,
有效用户ID
有效用户ID是指正在运行的进程的用户ID。进行使用权限的确认时通常会检查此值。最初,有效用户ID会等于真实用户ID,因为当一个进程进行派生时,父进程的有效用户ID会被子进程继承。此外,如果进程发生exec调用,有效用户ID通常不会变动。但是exec()执行期间,可以看出真实用户ID和有效用户ID之间的主要差异:通过setuid(suid)二进制文件,进程可以变更它的有效用户ID。有效用户ID会被设定成程序文件拥有者的用户ID。没有特权的用户可以把有效用户ID设定成真实的或者被保存用户ID,超级用户可以把有效用户ID设定成任何值。
被保存的用户ID
被保存的用户ID就是进程最初的有效用户ID。当一个进程进行派生时,子进程会继承其父进程的被保存的用户ID。然而对exec调用而言,内核会把被保存的用户ID设定成有效用户ID,因此会在exec调用进行期间替有效用户ID保存一条记录。不具特权的用户 无法变更被保存的用户ID,而超级用户ID可以将它变更成跟真实用户ID一样的值。