技术源于努力
努力实现梦想

linux下的FACL设置 linux入门

需求:当我建立一个文件,只想要特定的用户来进行访问或者修改,其他用户都不能有访问的权限,那么这个时候文件的其他人权限为—,那么怎么让特定的人来访问呢?
我们建立一个文件或者目录,这个目录或者文件的属主和属组都是用户的用户名和基本组。不想让其他人查看这个目录或者这个文件,那么这个时候文件的其他人权限为—。
想要特定的人来访问,原来的安全模型就不能满足了,这个时候就有了FACL的出现咯

FACL原理:利用文件的扩展属性保存额外的访问控制权限,这些权限可以又定义文件访问的属性。还可以定具体访问的用户

ACL安全模型:使用一个命令去访问一个文件,linux先去判断进程是否是文件的属主,如果不是,那么就去看FACL中定义的user,如果不是,那么判断进程的属组是否是文件的属组,如果不是,则判断是否为FACL中的定义的属组,如果也不是,那么再去看其他人权限。

当我们设置了facl,那么文件权限后边就会有个+号,表示文件有扩展属性。当一个文件有扩展属性的时候如果要复制或者将这个文件进行归档的时候会有特殊的命令。

给文件设置facl权限

Setfacl :设置facl权限 setfacl [option] [argument] FILENAME
        -m:设定facl
                   u:UID:perm
                   >setfacl –m u:sa:rw filename
                   g:GID:perm
                   >setfacl –m g:develop:rwx filename
	-x:取消设置的facl
	           u:UID
                   g:GID

给目录设一个默认的访问控制列表,任何在目录下创建的文件都会默认继承目录的访问控制列表。注意这个只能设置在目录上。

-m:设定facl	
		d:u:UID:perm
		d:g:GID:perm
	-b:移除所有的acl扩展属性,只保留基本的own和group
	-k :移除这默认的ACL权限

Getfacl:查看facl权限
在用getfacl查看facl权限,结果中会有一个mask的权限,这个权限并不是用来加加减减的。因为我们所有的额外的用户或者是组的权限都有一个最大的权限值,这个权限值就是mask的权限组,意思就是额外的组或者用户的权限值不会超过这个mask的权限值,这里的mask就是记录最大值的一个作用。
如果我们需要设定一个mask的值,例如这个值是rw,如果新增加的用户或者组的权限超过了这个权限,那么就会被截断,也就是说如果新增加的组或者用户的权限为wx,那么x权限就会被截断掉,这个设置mask的操作是:
>setfacl – -mask 

Granting an additional user read access
              setfacl -m u:lisa:r file

Revoking(撤销) write access from all groups and all named users (using the effective rights mask)
              setfacl -m m::rx file

Removing a named group entry from a file's ACL
              setfacl -x g:staff file

Copying the ACL of one file to another
              getfacl file1 | setfacl --set-file=- file2

Copying the access ACL into the Default ACL
              getfacl --access dir | setfacl -d -M- dir

赞(0) 感谢小主打赏
未经允许不得转载:新域软件科技 » linux下的FACL设置
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏