我正在尝试使用 os.Mkdir 创建具有某些权限的目录,但由于某种原因我无法使其工作。
我的测试程序是:
package main
import (
"log"
"os"
)
func main() {
err := os.Mkdir("testdir", 0775)
if err != nil {
log.Print(err)
}
}
但是创建的目录默认有0755权限:
drwxr-xr-x 2 user user 4096 Jan 10 10:14 testdir
shell 中的 chmod 工作得很好,所以我不确定为什么 Go 程序不工作。
创建文件时,类Unix系统使用权限掩码(umask)来创建默认权限。
With a umask
的价值0022
,将创建具有权限的新目录0755
最多。新文件将有权限0644
最多。
如果你想新建一个有权限的目录0775
,那么你必须将 umask 值设置为0002
.
解决此问题的另一种方法是在创建文件后修改权限:使用默认权限创建它os.Mkdir
,然后修改这些权限os.Chmod
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)