【发布时间】:2017-01-10 09:18:30
【问题描述】:
我正在尝试使用 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 程序为什么不工作。
【问题讨论】:
-
运行
umask命令时会出现什么? -
0022 就是它所说的
-
with umask 0022 在创建文件后添加权限
os.Chmod("testdir", 0777)对我有用,但我不确定它是否是好的解决方案。 -
是的,这是关于与当前进程的
umask值的交互,因此通常与 Go 或 StackOverflow 无关。请阅读一本关于在 Unix 环境中工作的入门书籍。
标签: go