记一次百度使我饶弯路
起因
用Go的时候我想创建一个日志文件用了os.OpenFile
,然后我给的 777
权限但是给我得到的实际权限是411
我当时就蒙蔽了
百度开始
首先先百度一下os.OpenFile
为什么给的权限和实际生成的不符合?
百度告诉我是umask
的原因。 问题来了umask
又是个啥东西?
继续百度,得到结果umask
是linux 操作系统对于权限处理的有这么一个机制
由权限掩码umask所确定的。它的功能可以说与chmod刚好相反的,代表默认拿走的也就是说不要的权限
懂了这个东西以后 开始解决问题 首先要让umask
变成0,在重新赋予权限(这是百度说的不是我说的)。
最后在实现效果了以后 我又回想umask
只和设置默认权限的时候有用,和我赋予权限有什么关系? 我开始疯狂验证猜想,最后得出结论
我给权限的时候没有写0777
导致出现了问题。但是我为了解决这个问题,饶了好远的路!
最后
一定要理性百度,切行切珍惜!
参考文章 :
Linux下的权限掩码umask
go新建文件权限与设置不符
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: