标题Linux下,文件权限,访问控制列表ACL,UGO的补充
一、访问控制列表 ACL access control list 访问 控制 列表 用于限制用户对文件的访问,
二、ACL是对UGO的补充,可以设置不同的用户(username)或组(groupname)的不同的权限(rwx),且对象数量不限,ugo则只能设置属组属主和其他。 1、添加权限命令: setfacl -m u:username:rwx dir 设置文件或者文件夹对某个用户或某个组的权限,每次的设置都是覆盖原权限,这里的-m指modify acl。
被赋予了ACL权限的对象使用ls -l时UGO部分后面会多一个+,并且对ACL的设置会叠加到UGO中,但是具体真实的访问权限还是要分开看,而不会按照UGO现实的那样都有权限。 所以当发现UGO后面带有+时,一定要使用getfacl命令查看对象权限。
2、查询权限命令 getfacl dir 查询对象的ACL
3、删除权限命令: setfacl -x u:username dir 删除用户权限,不需要权限信息,因为是要删除,这里的-x时remove acl,删除了某个用户的权限但是+还在。
4、删除对象所有acl权限的命令 setfacl -b dir 清除掉对象的所有扩展出来的ACL,这里的-b是remove all
三、如果想要给文件授予组的acl权限,只需要使用: setfacl -m g:groupname:rwx dir
用法和给文件授予用户acl一样。
注意: 发生了权限冲突时:拒绝权限优先于允许权限 如果同一个用户或者组对同一个文件有允许和拒绝两种权限,则拒绝权限优先
四、文件用户特权suid suid是针对文件所设置的一个特别的权限,可以使调用文件的用户临时具有属主的能力,谁访问这个文件谁就像它的属主一样 chmod u+s dir 将dir对应的对象的u加上s,使得该dir的u权限从rwx变成rws,其他用户访问这个对象时,会临时拥有其属主的权限,比如将root用户的某个文件加上u+s,所有用户就都可以向root一样对这个对象使用权限了,不过这种方法一般是在坑自己,之后还会有组特权和其他特权,但很罕见。