UID和EUID

每个用户有一个uid和gid, 这个记录在/etc/passwd, /etc/group里面

每个文件有一个uid, 就是拥有这个文件的用户的uid。

每个用户运行一个程序时是以自己的uid作为身份的,如果这个程序被设置了stick位,则这个程序以程序拥有者的uid作为身份,程序运行时的这个身份(uid)就是euid, 表示这个程序以那个用户的身份运行(这样就拥有那个用户的权限,比如读取属于他的文件)。

所以程序运行时的身份euid一般情况下都是运行这个程序的人的uid,有时会是这个程序拥有者的uid。

以passwd程序为例,这个程序要写/etc/passwd, /etc/shadow,一般用户对这些文件是没有写权限的,用户A运行了passwd,这个passwd进程的euid就是uidA,当要写这两个文件时,passwd调用了setuid(seteuid?),这样这个passwd进程的euid就是uidRoot了,passwd就可以写那两个文件了,写完之后euid再切换成uidA.

这个过程就实现了对/etc/passwd, /etc/shadow的受控访问:普通用户只允许按照passwd程序定义好的方式修改这两个文件。


有些shell登陆时会判断uid和eudi是否相),如果我们不想让它判断(常用在本地权限提升中),可以通过参数控制:

比如禁止ksh判断:

#!/bin/ksh -p

转载于:https://my.oschina.net/acmfly/blog/91334

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值