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

时间:2015-04-27 11:50:51

标签: go permissions directory

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

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

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/

我在这里弄错了什么?

1 个答案:

答案 0 :(得分:4)

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

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

您可以在Wikipedia上详细了解umask