Ubuntu中setfacl命令提示 Operation not supported 错误及解决方法

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(注意是小写),如下:

/dev/xvda / ext3 rw,acl 0 1

修改后,保存并退出,然后直接重启系统,或者直接umount该文件系统,并重新mount。最后再用mount -l确认一下看ACL支持是否开启即可。

支持原创技术分享,据说打赏我的人,都找到了女朋友!