岳阳网站设计u,免费网站是,网站怎么算抄袭,wordpress默认邮件在哪里设置原文链接#xff1a;http://blog.csdn.net/chosen0ne/article/details/10581883对进程校验文件访问权限包括两个部分#xff0c;一是确定进程的角色#xff08;属于哪个用户或者组#xff09;#xff0c;二是确定对应的角色是否具有该操作的权限。 首先看第一部分。默认情… 原文链接http://blog.csdn.net/chosen0ne/article/details/10581883 对进程校验文件访问权限包括两个部分一是确定进程的角色属于哪个用户或者组二是确定对应的角色是否具有该操作的权限。 首先看第一部分。默认情况下进程的有效角色就是当前执行这个进程的用户及其所在组。但是文件具有设置用户ID位和设置组ID位stat.st_mode的S_ISUID和S_ISGID用于改变这种默认的行为将进程的有效角色设置为文件所属的用户和组。这主要用于解决执行进程的用户或组不具备修改这个文件的权限但却不得不对文件进行修改的情况。比如/etc/passwd就是用了设置用户ID位因为passwd允许任意用户修改其密码而只有超级用户才具有对该文件的写权限所以在普通用户执行passwd修改密码时必须将设置用户ID位置位。这里只要记住进程的角色只能是执行它的用户或者是它要操作的文件的用户。 文件的权限包括用户、组和其他角色的r读、w写和x执行。在根据进程角色检验权限时可以分为两种文件权限校验和目录权限校验。文件权限校验比较简单在open文件时执行了要对文件进行的操作O_RDONLY、O_WRONLY和O_RDWR或者是执行一个文件只要确定是否具有该权限即可具体规则后文介绍。目录也是具有权限的主要限制其所属的文件的一些操作包括 1. 如果要打开一个文件必须具有文件路径中所有目录的执行权限即搜索文件需要目录的执行权限比如打开文件/home/work/foo则必须对//home和/home/work三个目录具有执行权限。 2. 要从一个目录删除或者添加一个文件则必须对这个目录具有写权限和执行权限删除文件时不需要对该文件具有相关权限。 3. 要获取一个目录下所有文件则需要对该目录具有读权限。 在打开、创建和删除文件时内核会进行访问权限的校验规则如下 1. 若进程的有效用户ID是0即超级用户则允许访问。 2. 若进程的有效用户ID等于文件的所有者ID即进程拥有该文件那么就要检验所有者是否具有进行该操作的权限若具有该权限则允许否则拒绝。 3. 若进程的有效组ID是文件的组ID那么检验该组是否具有进行该操作的权限若具有该权限则允许否则拒绝。 4. 执行其他角色的权限检验如果具有该权限则允许访问否则拒绝。 这种测试方式使用的是进程的有效用户ID和组ID通过access可以测试进程的实际用户ID和组ID是否具有该权限。但是只能测试而不能使用实际角色进行某个文件操作。 在进行创建一个文件时需要确定这个文件的所有权问题。这个文件的用户就是进程的有效用户而组IDPOSIX允许有两种实现 1. 新文件的组ID是进程的有效组ID。 2. 新文件的组ID是它所在目录的组ID。 转载于:https://www.cnblogs.com/waytofall/p/3953505.html