第四章:用户ID和组ID

用户 ID  和  组 ID 

   注意:以下的概念通常是跟进程相关的

 

  文件所有者ID 和 文件所有者组ID

        这两个id可通过获取文件stat来获取

        struct  stat  结构中的  st_uid  和  st_gid   成员真好就对应这两个id

  实际用户ID 和 实际组ID   :

        int  getuid();    获取用户ID

        int  getgid();  获取实际组ID

        这俩ID 指出执行当前进程的是谁 

 

  有效用户ID 、 有效用户组ID   和    附加组ID:

        int  geteuid();  获取有效用户ID

        int  getegid();  获取有效组ID

         用于文件访问权限的检查。

        通常,进程的有效用户ID 就是 进程的 实际用户ID

        有效组ID 就是 实际组ID

        在用户模式字中 (就是  struct stat 结构中的st_mode成员 ),有 两个位 : 设置用户ID位   和   设置用户组位

        如果这两个位设置后 , 执行可执行文件的时候  进程的有效用户 ID  就会被设置成  可执行文件的 所有者的用户ID

        进程的有效组ID 会被设置成  可执行文件的 所有者的组ID

        这样进程就会以  可执行文件所属用户 所 拥有的 权限 运行

        设置用户ID 位  和 设置用户组 ID  位   可以用  S_ISUID   和 S_ISGID   这两个 常量测试

  

  保存的设置用户ID  和 保存的设置组ID

        当进程的有效用户ID   和  有效用户组ID 改变的时候,  保存的设置用户ID   和  保存的设置组ID   这俩  变量会保存  有效ID 的 一个副本

        当调用  exec  函数的时候, 会利用  这两变量来恢复进程的有效ID

 

        

        

    

  

 

  

转载于:https://www.cnblogs.com/wowk/archive/2013/05/30/3108515.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值