macOS系统中能否移除文件所有者的读权限?
macOS下移除文件所有者读权限的解决方案
macOS基于BSD内核开发,默认对文件所有者有隐式权限保障机制:只要账户是文件的所有者,内核会自动修正POSIX权限位,确保所有者至少拥有读权限,避免用户误操作把自己锁死在自有文件外,这就是你执行chmod u-r后权限自动恢复的核心原因。
以下是两种可实现需求的可行方案:
方案1:使用ACL显式拒绝读权限(无需修改文件所有者,优先级高于POSIX权限)
ACL(访问控制列表)的规则优先级高于传统POSIX权限,不会被内核自动修正,是作业需求下最简便的实现方式:
- 执行命令添加拒绝规则,将下方的
thijs替换为你自己的用户名:chmod +a "thijs deny read" weather.txt - 验证效果:执行
cat weather.txt会提示「Permission denied」,符合移除读权限的要求。 - 恢复权限的命令:
chmod -a "thijs deny read" weather.txt
方案2:修改文件所有者后调整POSIX权限位(满足纯POSIX权限修改的要求)
如果作业要求必须修改POSIX权限位本身而不使用ACL,可通过修改文件所有者的方式绕过隐式权限保障:
- 将文件所有者改为root用户:
sudo chown root:staff weather.txt - 调整文件权限为无任何权限:
sudo chmod 000 weather.txt - 验证效果:执行
ls -l可看到文件权限位为----------,你作为普通用户thijs访问该文件会被拒绝。 - 恢复权限的命令:
sudo chown thijs:staff weather.txt && sudo chmod 600 weather.txt
内容的提问来源于stack exchange,提问作者Thijs0001
相关产品推荐
相关产品推荐

