APUE第八章学习札记之进程用户ID与文件用户权限相关知识总结

在Unix/Linux中,对于权限的管理是很严格并且很重要的。然后,在APUE书本中,对于这方面的描述可能会让一些同学感到困惑(原因是没有统一的集中的说明,知识分散在几章几节不利于理解)。因此,笔者在此将之一一总结。

我们都知道文件相关的权限有文件用户(owner)、文件组、其他。对此基础知识有不了解的可以参考之前的博文(http://my.oschina.net/DanielLee/blog/176922)。

而进程用户ID分为实际用户ID,有效用户ID和保存的设置用户ID。接下来一一说明。

1)对于实际用户的理解:登录系统的用户就是实际的用户。实际用户ID和实际组ID。

2)而我们需要更加关注的是有效用户(分为:有效用户ID,有效组ID,附加组ID),有效用户与文件访问有很大关联——有效用户的身份决定了我们的文件访问权限。

进程每次打开、创建或删除一个文件时,内核就进行文件访问权限测试,而这种测试可能涉及文件的所有者(st_uid和st_gid)、进程的有效ID(有效用户ID和有效组ID)以及进程的附加组ID。两个所有者ID是文件的性质,而两个有效ID和附加组ID则是进程性质的。内核进行的测试是:

(1)若进程的有效用户ID是0(超级用户),则允许访问。

(2)若进程有效用户ID等于文件所有者ID,则若适当的访问权限位被设置,则允许访问,否则拒绝访问。

(3)若进程的有效组ID或进程的附加组ID之一等于文件的组ID,那么:若组适合的访问权限位被设置,则允许访问,否则拒绝访问。

(4)若其他用户适当的访问权限被设置,则允许访问,否则拒绝访问。

以上四步是按顺序执行的,如果某一步能够执行访问文件则终止测试,转至执行。

3)保存的设置用户ID和保存的设置组ID在执行一个程序时包含了有效用户ID和有效组ID的副本。

对于这个保存的设置用户ID内容比较多,另写一博文来说明。

你可能感兴趣的:(用户权限,apue,进程ID)