我正在使用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/
我在这里弄错了什么?
答案 0 :(得分:4)
创建的文件夹将获得的实际权限是您指定的权限(0777
)和进程的活动umask
(正在运行的Go程序)的结果。
这很可能是为什么创建的文件夹缺少对组和其他访问的写入权限。
您可以在Wikipedia上详细了解umask
。