linux进程的用户ID,有效ID,保存的设置ID
来源:互联网 发布:人民币汇率波动率数据 编辑:程序博客网 时间:2024/06/05 16:53
下面以apue上的例子access.c来说明一下设置ID位的作用。
#include <sys/types.h>
#include <fcntl.h>
#include "ourhdr.h"int
main(int argc, char *argv[])
{
if (argc != 2)
err_quit("usage: a.out <pathname>");
if (access(argv[1], R_OK) < 0)
err_ret("access error for %s", argv[1]);
else
printf("read access OK/n");
if (open(argv[1], O_RDONLY) < 0)
err_ret("open error for %s", argv[1]);
else
printf("open for reading OK/n"); exit(0);
}
假定该源文件是以renshui身份创建的。那么我们执行程序后,进程的
uid=renshui
euid=renshui
set-user-id=renshui
如果我们为程序传入的参数是该源文件access.c,则access函数可以读该文件,因为进程的uid等于文件的所有者id;open函数也可以读该文件,因为进程的euid等于文件的所有者id。如果我们为程序传入的参数是 /etc/shadow,该文件的mode为
-r-------- 1 root root 1325 03-16 18:29 /etc/shadow
也就是说只有root可以去读。我们用普通登录名去执行access程序,则无论是access还是open都无法读该/etc/shadow文件。我们切换到超级用户
$ su 成为超级用户
# chown root access 将文件用户id改为root
# chmod u+s access打开set-user-id
# exit恢复为正常用户
我们再去执行access去访问/etc/shadow,则该进程的
uid=renshui
euid=root
set-user-id=root
用access尝试去读仍然不可以,因为内核是以进程的uid执行访问权限测试的。用open去读就可以了,因为内核是以进程的euid执行访问权限测试的,这时euid等于/etc/shadow的所有者root。
- linux进程的用户ID,有效ID,保存的设置ID
- linux进程的用户ID,有效ID,保存的设置ID
- Linux进程相关ID---有效用户ID 实际用户ID 保存设置用户ID
- 掌握Linux之实际用户ID 有效的用户ID 保存的设置用户ID
- linux 中实际用户ID”、“有效用户ID”和“保存的设置用户ID”三个术语
- linux 中实际用户ID”、“有效用户ID”和“保存的设置用户ID”三个术语
- linux 实际用户ID、有效用户ID以及保存的设置用户ID
- linux 用户id 有效用户id 保存设置id
- 实际用户ID,有效用户ID,保存-设置-用户ID,文件的所有者ID
- 讨论unix进程的设置用户ID,有效用户ID,保存设置ID,文件的设置位
- 讨论unix进程的设置用户ID,有效用户ID,保存设置ID,文件的设置位
- Linux进程的实际用户ID和有效用户ID
- Linux进程的实际用户ID和有效用户ID
- Linux进程的实际用户ID和有效用户ID
- Linux进程的实际用户ID和有效用户ID
- Linux进程的实际用户ID和有效用户ID
- Linux进程的实际用户ID和有效用户ID
- Linux进程的实际用户ID和有效用户ID
- ecshop后台商品列表添加自定义方法 例如添加商品提醒信息
- Extjs 4.1相关知识点
- dut oj1192 Problem G(2012辽宁省赛G题 树状数组)
- 一个mysql中强制转化的现象
- 条件判断
- linux进程的用户ID,有效ID,保存的设置ID
- 浅谈内存计算
- COPY 将压缩包伪装成图片,并显示图片
- jboss中 web-console 登录的用户名和密码设置
- 实习七月,随便写写
- 整数划分问题
- sql server2008 检查是否需要挂起计算机重新启动。挂起重新启动会导致安装程序失败
- hdu 1166 敌兵布阵(裸树状数组)
- python的{}字典操作