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

05-11 17:54