码迷,mamicode.com
首页 > 其他好文 > 详细

实际用户和有效用户的

时间:2016-04-08 20:15:46      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:suid的作用

实际用户:表示你是谁,谁运行起来,用于标识信息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的设置也一样。

本文出自 “小止” 博客,请务必保留此出处http://10541556.blog.51cto.com/10531556/1761842

实际用户和有效用户的

标签:suid的作用

原文地址:http://10541556.blog.51cto.com/10531556/1761842

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!