实际用户和有效用户的
2016-04-08 17:23
429 查看
实际用户:表示你是谁,谁运行起来,用于标识信息eg:身份证,邀请函身份,非会员有效用户:对某种资源是否具有某种权限,进程可能访问某些资源,普通用户不忍,身份变更才可访问资源例如:在Linux系统下,root用户或普通用户都可以使用passwd命令来修改密码,修改密码主要通过修改etc文件来实现,而shadow文件权限全空,只有root有权限修改此文件。故当普通用户执行passwd命令时,它的权限在一瞬间得到提升,运行时以拥有者权限运行。
运行结果:
现在添加进程实际用户和有效用户等信息。
注意:test4一直是000权限
现在回到普通用户:运行./test4
现在就要回到root权限给test4加s权限啦
输入chmod u+s test4,只用给可执行文件加,再回到普通用户试试
此时euid变为0,为root权限的euid.set设置完成后,任意一个可运行命令的用户(设置SUID位),以该文件拥有者权限运行-----SUID作用
同理,gid和egid的设置也一样。
//创建文件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的设置也一样。
相关文章推荐
- SQLSERVER 中GO的作用详解
- VBScript 作用 简单说明
- C语言中static的作用及C语言中使用静态函数有何好处
- 解析php中call_user_func_array的作用
- Lua中rawset和rawget的作用浅析
- Java @Deprecated注解的作用及传递性
- Python中if __name__ == '__main__'作用解析
- Oracle中dual表的用途介绍
- o7_dictionary_accessibility的作用
- Oracle里,scope=both或者scop=pfile 作用
- 标识接口 作用
- initwithcoder的作用
- Android中FLAG_ACTIVITY_CLEAR_TASK的作用
- linux的特殊权限(转载)
- ZOOKEEPER的作用
- stdafx.h的作用
- 浅谈在SEO中书写标签时部分常用符号的使用
- sgid,suid深层解析
- cookie的作用
- 20140630晚 ARP详解