您的位置:首页 > 产品设计 > UI/UE

实际用户和有效用户的

2016-04-08 17:23 429 查看
实际用户:表示你是谁,谁运行起来,用于标识信息eg:身份证,邀请函身份,非会员有效用户:对某种资源是否具有某种权限,进程可能访问某些资源,普通用户不忍,身份变更才可访问资源例如:在Linux系统下,root用户或普通用户都可以使用passwd命令来修改密码,修改密码主要通过修改etc文件来实现,而shadow文件权限全空,只有root有权限修改此文件。故当普通用户执行passwd命令时,它的权限在一瞬间得到提升,运行时以拥有者权限运行。
//创建文件test.c
#include<stdio.h>
int main()
{
printf("hello\n");
return 0;
}
在root权限下,修改test4.c的权限为066,此时运行test4.c



运行结果:





现在添加进程实际用户和有效用户等信息。
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
printf("hello\n");
pid_t id=fork();
if(id<0)
{
perror("fork");
exit(1);
}
else if(id==0)
{
printf("pid: %d,ppid: %d,uid: %d,euid: %d,gid: %d,egid: %d\n",getpid(),getppid(),getuid(),geteuid(),getgid(),getegid());
}
else
{
printf("pid: %d,ppid: %d,uid: %d,euid: %d,gid: %d,egid: %d\n",getpid(),getppid(),getuid(),geteuid(),getgid(),getegid());
}
return 0;
}
运行结果为:



注意:test4一直是000权限
现在回到普通用户:运行./test4



现在就要回到root权限给test4加s权限啦
输入chmod u+s test4,只用给可执行文件加,再回到普通用户试试



此时euid变为0,为root权限的euid.set设置完成后,任意一个可运行命令的用户(设置SUID位),以该文件拥有者权限运行-----SUID作用

同理,gid和egid的设置也一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  作用 SUID