与一个进程相关联的 ID 有6个或更多,如下图所示
其中:
- 实际用户ID 和实际组 ID 标识我们究竟是谁。这两个字段在登陆时取自口令文件中的登陆项。通常,在一个登陆会话期间这些值并不改变,但是超级用户进程有办法改变他们。
- 有效用户id、有效组id 以及附属组 ID
决定了我们文件的访问权限
- 保存的设置用户ID 和 保存的设置组ID在执行一个程序时包含了有效用户ID 和 有效组 ID 的副本。
在执行一个程序文件时,进程的有效用户id通常就是实际用户id,有效组ID通常就是实际组ID ,但是可以通过设置用户id,其含义是:在执行此文件时,将进程的有效用户id设置为文件所有者的用户id
.
总结
简单来说就是
- real user ID,永远不会变,除非超级用户进程改变他:当一个用户登录系统之后,该shell的ruid就是改用户了。从该根shell产生的所有进程都会继承ruid,即该用户。
- 有效用户id一般情况下等于实际用户id,但是可以通过设置ID位来在
执行
一个可执行文件时改变