开发实战指南
chmod 与 umask:创建掩码和特殊权限位
按位计算创建权限,区分 rwx、sticky、setuid 与 ACL 的实际作用。
读懂三组 rwx
常见三位八进制表示所有者、组、其他的读写执行权限,每个比特是权限,不是十进制分数。
先用 chmod 工具检查普通模式,再分析创建规则。
0640 → owner rw-, group r--, other ---umask 是按位操作
不考虑默认 ACL 覆盖等影响时,创建模式与 umask 的补码按位与,不是算术相减。
程序常为文件请求 0666、目录请求 0777,同一掩码会得到不同结果。
umask 0027:
file: 0666 & ~0027 → 0640
directory: 0777 & ~0027 → 0750特殊位与 rwx 分开
第四位八进制可以表示 setuid、setgid 和 sticky,效果取决于文件类型与系统规则。
本站三位计算器主要处理 rwx,不是完整特殊位或 ACL 模拟器。
Directory mode 1777 includes the sticky bit.
It is not equivalent to ordinary 0777.检查实际访问控制层
ACL、挂载标志、父目录搜索权限与进程身份都会影响访问,umask 不会追溯修改旧文件。
排查 permission denied 时检查真实文件和运行身份,八进制转换正确不等于访问一定成功。