uid,gid,euid,geid,简单记录
来源:互联网 发布:淘宝买冰箱靠谱吗 编辑:程序博客网 时间:2024/05/02 05:07
uid,gid:
实际用户id和实际组id,进程的这两个id在登入时从口令文件/etc/passwd中获取。
euid,geid:
有效用户id,有效组id 决定了我们的进程访问文件的权限。进程的有效用户id通常就是实际用户id。
suid,sgid:
当一个进程访问设置了set-user-ID或是set-group-ID标志的文件时,该文件的宿主用户id被保存在suid中。
例如:修改用户密码时,需要使用命令passwd以及写文件/etc/passwd或是/etc/shadow
/usr/bin/passwd
-rwsr-xr-x 1 root root 41284 Sep 12 2012 passwd
/etc/passwd
-rw-r--r-- 1 root root 1147 Mar 22 2015 passwd
/etc/shadow
-rw-r----- 1 root shadow 928 Mar 7 10:52 shadow
命令passwd设置了s位,所以当用户进程执行passwd程序时
i = inode->i_mode; e_uid = (i & S_ISUID) ? inode->i_uid : current->euid; e_gid = (i & S_ISGID) ? inode->i_gid : current->egid; current->euid = e_uid; current->egid = e_gid;
所以用户进程的e_uid和e_gid 就变了passwd的用户id和组id,即root。
后续该进程操作/etc/passwd或是/etc/shadow时 就能通过权限检查
int mode = inode->i_mode;/* special case: not even root can read/write a deleted file */ if (inode->i_dev && !inode->i_nlinks) return 0; else if (current->euid==inode->i_uid) mode >>= 6; else if (current->egid==inode->i_gid) mode >>= 3; if (((mode & mask & 0007) == mask) || suser()) return 1; return 0;
检查进程对文件的操作权限时,使用的是euid或是guid
而当一个进程创建新文件时,该文件的uid和gid也是进程的euid和egid
inode->i_uid=current->euid; inode->i_gid=current->egid;
0 0
- uid,gid,euid,geid,简单记录
- Uid euid gid egid关系
- uid gid euid egid详解
- uid gid euid egid详解
- uid,gid,euid,egid,sgid解析
- 彻底搞懂uid-gid-euid-egid
- linux UID,GID,EUID,EGID,SUID,SGID快速理解
- 文件的uid、gid 进程的euid 、egid 、附加组ID(如果支持) 总结
- 文件的uid、gid 进程的euid 、egid 、附加组ID(如果支持) 总结
- uid/gid
- uid/gid
- UID, EUID, SUID, FSUID
- UID, EUID, SUID, FSUID
- UID, EUID, SUID
- UID, EUID, SUID, FSUID
- 进程pid和ppid、进程的uid和euid、用户的uid和gid、文件的创建者和所有者的关系辨析
- uid和gid
- UID,GID,SUID,SGID
- Pinyin4j - utils
- 跨域获取服务器数据方式
- Java读取Level-1行情dbf文件极致优化(2)
- 67. Add Binary
- js中控制小数位数
- uid,gid,euid,geid,简单记录
- navicat显示中文为问号
- 数据结构——c语言描述 第三章 (2)栈的练习(四则运算的实现)
- html代码实现自动滚动,鼠标滑过时停止滚动
- iOS应用程序内购/内付费(一)
- jquery
- Java读取Level-1行情dbf文件极致优化(3)
- 最简单的JS图片轮播
- Cache应用中的服务过载案例研究