在麒麟系统中需启用acl机制实现对特定用户(如张三)的精准目录访问控制:先确认文件系统支持acl,再用setfacl授予权限,配合getfacl验证并用mask确保权限生效。

您需要在麒麟操作系统中让某个特定用户(比如张三)能访问某个文件夹,而其他用户不能访问,但又不想把整个文件夹权限开放给所属组或所有人——这时候标准的chmod三元权限无法满足需求,必须启用ACL机制单独授权。
确认文件系统支持ACL
执行df . | tail -1 | awk '{print $1}'获取当前分区设备路径,再运行mount | grep "$(df . | tail -1 | awk '{print $1}')" | grep acl。如果输出中包含acl字样,说明已启用;若无任何输出,需先执行sudo mount -o remount,acl /(将/替换为实际挂载点,如/home)。
【若未启用ACL,setfacl命令会报错“Operation not supported”,后续所有操作均无效】
为特定用户添加读写权限
方法一:直接授予读写权限
执行sudo setfacl -m u:zhangsan:rw- /path/to/folder。该命令仅对张三开放读和写权限,不赋予执行权,因此他无法进入该文件夹——若需进入,必须加x位。
方法二:授予完整访问权限(含进入目录能力)
执行sudo setfacl -m u:zhangsan:rwx /path/to/folder。注意:x权限对目录意味着“可进入”,缺了它张三连ls都执行不了。
方法三:递归应用到子项
若要让张三也能访问该文件夹内所有现有文件和子目录,追加-R参数:sudo setfacl -R -m u:zhangsan:rwx /path/to/folder。这会逐层设置,耗时取决于内容量。
验证并固化ACL规则
第一步:运行getfacl /path/to/folder,检查输出中是否出现user:zhangsan:rwx(或对应权限符号)条目,且未被标记为#effective:-——后者表示权限被掩码屏蔽,需同步调整mask。
第二步:若发现effective权限受限,执行sudo setfacl -m m::rwx /path/to/folder显式提升mask值,确保张三的实际权限不被截断。
第三步:确认张三能正常访问——切换到zhangsan用户(su - zhangsan),执行ls /path/to/folder,无报错即生效。











