详解Linux实际ID有效ID

先说结论再说试验

实际ID:就是创建这个进程的用户/组ID

有效ID:如果可执行文件权限中没有S时(-rwxr-xr-x 1 root    root    5415 11-09 15:55 getids这个getids-rwxr权限就没有S)与实际用户ID/组相同

如果可执行文件权限中有S时(-rwsr-xr-x 1 root    root    5415 11-09 15:55 getids这个getids-rwsr权限有S)有效ID就是文件拥有者/组ID(创建该文件的用户或组)

 

实际ID就是实际上这个进程的执行者(用户)三谁

有效ID就是说进程访问文件时,检查该进程以什么权限去访问

 

有S (saved set user ID)使有效ID(进程的权限)变成文件拥有者,使它获得更高的权限

 

文件拥有者就是谁创建的这个文件,所以文件拥有者本身一般会有比其他用户更高的可执行权限

例如:-rwxrwxr-x 1 NewuserNewuser 5416 11-10 22:02 getids2

      U– G - O(分别代表文件拥有者(上面的Newuser),文件所属组(上面第二个Newuser),其他用户权限)

 

登录root用户创建getids

#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>
int main()
{
       printf("pid=%d\n",getpid());
       printf("ppid=%d\n",getppid());
       printf("uid=%d\n",getuid());
       printf("euid=%d\n",geteuid());
       printf("gid=%d\n",getgid());
       printf("egid=%d\n",getegid());
       return 0;
}

 

 

 

运行结果

放大的字体表明不同的用户运行的结果

-rwxr-xr-x 1 root    root   5415 11-09 15:55 getids
[root@localhost home]# ./getids
pid=15186
ppid=14938
uid=0
euid=0
gid=0
egid=0


-rwxr-xr-x 1 root    root   5415 11-09 15:55 getids
[Newuser@localhost home]$ ./getids
pid=15266
ppid=15242
uid=501
euid=501
gid=501
egid=501


-rwsr-xr-x 1 root    root   5415 11-09 15:55 getids
[root@localhost home]# ./getids
pid=15393
ppid=15358
uid=0
euid=0
gid=0
egid=0


-rwsr-xr-x 1 root    root   5415 11-09 15:55 getids
[Newuser@localhost home]$ ./getids
pid=15474
ppid=15436
uid=501
euid=0
gid=501
egid=501

 

然后登录Newuser用户创建getids2代码和getids一样

然后运行如下结果

-rwxrwxr-x 1 Newuser Newuser 5416 11-10 22:02getids2
[root@localhosthome]# ./getids2
pid=16155
ppid=16133
uid=0
euid=0
gid=0
egid=0


-rwxrwxr-x 1 Newuser Newuser 5416 11-10 22:02 getids2
[Newuser@localhosthome]$ ./getids2
pid=16117
ppid=15967
uid=501
euid=501
gid=501
egid=501


-rwsrwxr-x 1 Newuser Newuser 5416 11-10 22:02 getids2
[Newuser@localhost home]$ ./getids2
pid=16310
ppid=16241
uid=501
euid=501
gid=501
egid=501


-rwsrwxr-x 1 Newuser Newuser 5416 11-10 22:02 getids2
[root@localhost home]# ./getids2
pid=16350
ppid=16329
uid=0
euid=501
gid=0
egid=0

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值