概念ACL是AccessControlList(访问控制列表)的缩写,用于linux中复杂的用户权限控制。在Cent7系统之前,只有系统安装时创建的文件系统支持ACL,后面创建的文件系统不支持。Cent7系统之后,无论安装系统时是否创建文件系统,都支持ACL。命令getfacl:用于查看ACL权限。setfacl:用来设置ACL权限。用法1.查看文件或目录权限getfaclfile/foldername[root@vm1~]#getfacl~getfacl:Removingleading'/'fromabsolutepathnames#file:root#owner:root#group:rootuser::r-xgroup::r-xother::---2.修改用户对文件或目录的权限setfacl-mu:uname:access文件/文件夹名[root@vm1~]#setfacl-mu:young:rwx-R~#Give/young[root@vm1~]#getfacl~getfacl:从绝对路径名中删除前导'/'#file:root#owner:root#group:rootuser::r-xuser:young:rwxgroup::r-xmask::rwxother::---我把/root文件夹的个人访问权限改为读写,组内用户有读权限,组外用户无权限。接下来测试:[young@vm1root]$ddif=/dev/zeroof=/root/testfilebs=1Mcount=20#创建一个测试文件,记录20+0的读数,记录20+的读数0写出复制的20971520字节(21MB),0.0154888秒,1.4GB/秒[young@vm1root]$ll|greptestfile-rw-rw-r--1youngyoung20971520Aug3001:49testfile[young@vm1root]$idnobodyuid=99(nobody)gid=99(nobody)group=99(nobody)确实,年轻用户被赋予了权力。因此,可以在/root目录下进行读写;而nobody用户没有权限,因为它没有被授权并且不在root组中。测试结束后,我们使用setfacl-b/root取消刚刚添加的ACL权限。[root@vm1~]#setfacl-b/root[root@vm1~]#getfacl~getfacl:从绝对路径名中删除前导'/'#file:root#owner:root#group:rootuser::r-xgroup::r-xother::---3.修改组对文件或目录的权限:setfaclg:gid:访问文件/目录路径,用法与授予用户权限一致,不再赘述。4、移动/复制文件或目录时的注意事项:移动文件/目录时,ACL权限默认一起移动。复制文件时,默认不保留权限;需要cp-p命令来保留权限。5、挂载时的注意事项:如果原文件系统不支持ACL权限,我们可以重新挂载。mount-oremount,acl挂载点
