ACL是Linux中的访问控制列表,它提供对文件、目录更好的读写、访问控制权限等功能,也是我在Ubuntu下配置用户权限经常用到的工具。ACL工具的安装非常简单:
sudo apt-get install acl
系统便会自动下载、安装ACL工具。安装好后,你就可以通过setfacl和getfacl来设置、获取文件及目录的访问控制权限了。
最近在用ACL设置权限的时候,老是提示: Operation not supported ,百思不得其解,反复检查了shell命令,并没有发现不妥之处,后来在向google老师请教后,发现Linux下的文件系统,在挂接时,有可能默认并没有开启对ACL的支持。通过如下命令可以检查:
mount -l
比如,在我的VPS中,通过此命令的输出信息,就能看到,我要设置权限的目录是在/home 而此目录是和根目录在同一个文件系统,被统一加载为 / 的。这个文件系统默认并没有开启动对ACL的支持,需要我们修改/etc/fstab来开启ACL支持。做法比较简单:
vim /etc/fstab
在你所需要的文件系统options中,追加acl(注意是小写),如下:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/xvda / ext3 rw,acl 0 1
修改后,保存并退出,然后直接重启系统,或者直接umount该文件系统,并重新mount。最后再用mount -l确认一下看ACL支持是否开启即可。