OCaml中Sys.mkdir函数int参数作用及适用取值咨询
OCaml
Sys.mkdir 权限参数说明 参数作用
Sys.mkdir 的第二个int类型参数是Unix风格的目录权限位,和Unix.mkdir的file_perm参数完全等价,本质是八进制整数,分别对应三类用户的三类权限:
- 三类用户:文件所有者、所属用户组、其他所有用户
- 三类权限(针对目录场景):
- 读权限:允许列出目录内的文件列表
- 写权限:允许在目录内新增、删除、重命名文件
- 执行权限:允许进入目录、访问目录内的文件内容
常用取值
普通存放文件的场景可以根据权限需求直接选以下值,OCaml中直接写0o开头的八进制字面量即可:
- 私有目录(仅自己可访问):传
0o700,仅所有者拥有读、写、执行全部权限,其余用户无任何权限 - 组共享目录:传
0o750,所有者拥有全部权限,同组用户拥有读和执行权限,其余用户无权限 - 公开可读目录(最通用场景):传
0o755,所有者拥有全部权限,所有用户都拥有读和执行权限,适合绝大多数不需要特殊权限控制的文件存储场景
注意事项
你传入的权限值不会直接作为最终生效的权限,系统会自动减去当前进程的umask权限掩码值再生效。比如系统默认umask为022时,就算你传入0o777,最终生效的权限还是0o755。如果需要严格匹配你传入的权限,可以在调用mkdir前临时修改umask,调用完成后再恢复原值即可。
内容的提问来源于stack exchange,提问作者Butanium
相关产品推荐
相关产品推荐

