记一次百度使我饶弯路

起因

用Go的时候我想创建一个日志文件用了os.OpenFile,然后我给的 777权限但是给我得到的实际权限是411我当时就蒙蔽了

百度开始

首先先百度一下os.OpenFile为什么给的权限和实际生成的不符合?
百度告诉我是umask的原因。 问题来了umask又是个啥东西?
继续百度,得到结果umask是linux 操作系统对于权限处理的有这么一个机制

由权限掩码umask所确定的。它的功能可以说与chmod刚好相反的,代表默认拿走的也就是说不要的权限

懂了这个东西以后 开始解决问题 首先要让umask变成0,在重新赋予权限(这是百度说的不是我说的)。
最后在实现效果了以后 我又回想umask只和设置默认权限的时候有用,和我赋予权限有什么关系? 我开始疯狂验证猜想,最后得出结论
我给权限的时候没有写0777导致出现了问题。但是我为了解决这个问题,饶了好远的路!

最后

一定要理性百度,切行切珍惜!

参考文章 :
Linux下的权限掩码umask
go新建文件权限与设置不符

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!