linuxlinux获取进程idd自增是什么原因?

 在Unix进程中涉及多个用户ID和用户组ID包括如下:

1、实际用户ID和实际用户组ID:标识我是谁。也就是登录用户的uid和gid比如我的Linux以simon登录,在Linux运行的所有的命令的实际用户ID都是simon的uid實际用户组ID都是simon的gid(可以用id命令查看)。

2、有效用户ID和有效用户组ID:进程用来决定我们对资源的访问权限一般情况下,有效用户ID等于实際用户ID有效用户组ID等于实际用户组ID。当设置-用户-ID(SUID)位设置则有效用户ID等于文件的所有者的uid,而不是实际用户ID;同样如果设置了设置-用户组-ID(SGID)位,则有效用户组ID等于文件所有者的gid而不是实际用户组ID。

以上来自:APUE(《高级UNIX环境编程》)

Unix系统通过进程的有效用户ID和有效用户组ID来决定进程对系统资源的访问权限

 以上这些概念还是比较的抽象,那么下面写一个小的测试程序:

这个程序非常简单没有什么恏说的我们编译这个程序生成test 程序

通过id命令看到当前登录用户为root,uid=0gid=0。通过ls命令我们可以看出test程序没有设置SUID和SGID所有者是root,所有组也是root执行test我们发现有效用户ID等于实际用户ID(0),有效用户组ID等于实际用户组ID(0)

你可能注意到test的所有者root,组也是root和实际用户,实际用户組是一样的下一步我们修改一下test所有者和组,再看结果

发现结果和上面一样,test进程的有效用户ID等于实际用户ID(0)有效用户组ID等于实際用户组ID(0)。

下面我们给test程序设置SUID

发现设置test程序的SUID位之后test进程的有效用户ID等于文件所有者的UID(gkh的uid为500),有效用户组ID还是等于实际用户組ID(0)这样程序就可以访问只有gkh才能访问的资源了。

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

我要回帖

更多关于 linux获取进程id 的文章

 

随机推荐