1.三个UID
这三个UID分别是实际用户ID(real uid)、有效用户ID(effective uid)、保存的设置用户ID(saved set-user-ID)(SUID)
实际用户ID(RUID,real uid):一般是在登录之后,就被唯一确定的,就是登陆的用户的uid
有效用户ID(EUID,effective uid):LINUX内核通过检验有效用户ID来判断当前执行这个操作的用户是否具有权限
保存的设置用户ID(SUID,saved set-user-ID):有效用户ID的副本,若一个可执行文件设置了SUID位,就可以让普通用户在某些需要特权权限时,临时地改变有效用户ID而获得特权权限
2.getuid函数
uid_t getuid(void);
函数说明:getuid()用来取得当前执行进程的用户ID(实际用户ID)
3.setuid函数
int setuid(uid_t uid)
函数说明:
1)若当前具有超级用户权限,则setuid将实际用户ID、有效用户ID及保存的设置用户ID设置为uid
2)若当前没有超级用户权限,但是uid等于实际用户ID或保存的设置用户ID,则setuid只将有效用户ID设置为uid