使用 os.Mkdir() 创建的文件夹权限不正确

A folder created with os.Mkdir() has incorrect permissions

我正在使用 os.Mkdir() 在 go 中创建一个文件夹。虽然它确实被创建了,但它没有我期望的权限。

这是我用来创建目录的代码:

package main

import (
    "fmt"
    "os"
)

func main() {
    err := os.Mkdir("/var/run/testdir", 0777)
    if err != nil {
        fmt.Println("could not create dir: %s", err.Error())
        err = nil
    }
}

因为我已将“0777”作为参数,所以我希望创建的目录对每个人都具有完全权限。但是它有:

drwxr-xr-x  2 root       root         40 Apr 27 11:43 testdir/

我哪里错了?

创建的文件夹将获得的实际权限是您指定的权限(0777)和您的进程(运行 Go程序)的活动umask的结果.

这很可能是创建的文件夹缺少组和其他访问的写入权限的原因。

您可以在 Wikipedia 上阅读有关 umask 的更多信息。