You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找无写入权限的文件?兼容标准权限与ACL,含特定文件夹场景

嘿,这个问题问到点子上了——权限排查最容易踩的坑就是忽略ACL,不过好在有现成的简便方法,不用自己手动解析权限位和ACL规则,我给你一步步讲:

一、查找特定文件夹下无写入权限的文件

直接用find命令的-writable测试项就搞定了,它会自动兼顾标准权限和ACL的情况,因为这个测试是基于当前用户的实际写入能力(底层调用access()系统调用),而不是单纯看文件权限位:

find /path/to/target/folder ! -writable

如果只想排查文件(排除目录),可以加-type f:

find /path/to/target/folder -type f ! -writable

要是只想看目录,就换成-type d。

二、全局查找系统中所有无写入权限的文件

同样用find,但要注意排除虚拟文件系统目录(比如/proc、/sys),这些目录里的文件权限没有实际意义,避免输出大量无效结果:

find / -path /proc -prune -o -path /sys -prune -o ! -writable -print

如果还想排除其他目录(比如/mnt下的挂载盘),直接追加-path /mnt -prune -o就行。

补充:为什么不用手动解析ACL?

很多人会想着用getfacl去解析ACL规则,再结合权限位判断,但-writable测试已经帮我们做了最准确的判断——它直接检查当前用户是否真的能写入该文件,不管权限是来自标准的user/group/other位,还是ACL里的额外允许/拒绝规则,完全不用自己去处理复杂的ACL逻辑,这就是最简便的实现方式。

如果需要针对其他特定用户排查无写入权限的文件(比如排查用户alice的情况),可以结合-user和-perm覆盖标准权限;如果要兼顾ACL,就得用getfacl配合脚本处理,比如:

find /path/to/folder -type f -user alice -exec sh -c 'getfacl -p "$1" | grep -qE "^user:alice:.*w" || echo "$1"' _ {} \;

不过这种场景相对少见,大部分时候用! -writable就足够应对你的需求了。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:04:56