设置操作系统.Mkdir 权限



我正在尝试使用操作系统创建具有某些权限的目录。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

来自外壳的chmod工作得很好,所以我不确定为什么Go程序不起作用。

创建文件时,类Unix系统使用权限掩码(umask)来创建默认权限。

如果umask值为 0022 ,将创建具有最多0755权限的新目录。新文件最多具有0644的权限。

如果要创建具有权限的新目录 0775 ,则必须将掩码值设置为 0002

另一种解决方法是在创建文件后修改权限:使用 os.Mkdir 使用默认权限创建它,然后使用 os.Chmod 修改这些权限。

最新更新