APUE:实际用户ID和有效用户ID(euid)

1.实际用户ID是登陆用户的ID。

有效用户ID在设置SUID后,为文件所有者ID。

2.比如说,用户修改密码,是通过运行命令passwd来实现的。最终必须要修改/etc/passwd文件。

/etc/passwd文件的属性是:

#ls -l /etc/shadow
----------. 1 root root 1039 Nov 13  2015 /etc/shadow

/etc/shadow只对root用户是可写的,对其他用户只有读权限。

 

普通用户通过运行passwd命令修改/etc/passwd文件时,

#ls -l /bin/passwd
-r-s--s--x 1 root root 16336 Feb 14 2003 passwd

 

由于passwd命令设置了SUID位,该进程的实际用户为leaf(普通用户),但是该进程的有效用户ID是文件所有者root的ID,因此通过passwd命令可以修改/etc/shadow文件。

(对应文件存取标志的s位就是通常说的SUID位,另外可以看到所有用户都有执行这个程序的权力。当leaf用户执行passwd命令的时候。Shell会fork出一个子进程,此时进程有效用户ID还是steve,然后exec程序/usr/bin/passwdexec会根据/usr/bin/passwdSUID位会把进程的有效用户ID设成root,   此时这个进程都获得了root权限, 得到了读写/etc/shadow文件的权限从而leaf用户可完成密码的修改。 exec退出后会恢复steve用户的EUIDsteve.这样就不会使steve用户一直拥有root权限。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值