Linux进程的实际用户ID与有效用户ID

之前在学习APUE(《高级UNIX环境编程》),在学习的过程中,对Linux进程的实际用户ID与有效用户ID不是很理解(第一次接触这些概念),直到最近又看了几遍之后,又看了一些网络上的资料,才搞明白。

在Unix的进程中,涉及到多个用户ID和用户组ID,包括:

1、实际用户ID和实际用户组ID:标识我是谁(据说这是一个变态的哲学问题,难死一片哲学家)。也就是登录用户的uid 和gid,比如我的Linux以taskiller登录,在Linux运行的所有的命令的实际用户ID都是taskiller的uid,实际用户组ID都是taskiller的 gid(可以用id命令查看)。

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

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

你可能感兴趣的:(linux)