登录
首页 >  Golang >  Go问答

创建具有特定权限的文件夹的方法

来源:stackoverflow

时间:2024-02-08 19:36:23 392浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《创建具有特定权限的文件夹的方法》,聊聊,我们一起来看看吧!

问题内容

我正在尝试在 Go 中创建一个具有非常特定权限的目录。 我需要 drwxrwxr-x 但我不知道如何使用 os.Mkdir() 来做到这一点。 我尝试过 os.ModeDir、os.ModePerm 和 os.ModeSticky

我使用的是 Linux,我不关心该解决方案是否适用于 Windows。可以,但不一定。

我的问题是我正在尝试创建一个稍后在程序本身中使用的目录(程序创建该目录并使用它来写入文件)。


正确答案


引用 https://stackoverflow.com/a/59963154/1079543

所有程序都使用 umask 设置运行...系统将从文件和目录创建请求中自动删除的权限集。

启动程序时将 umask 设置为 0 会产生您正在寻找的结果:

//go:build unix
package main

import (
    "log"
    "os"

    "golang.org/x/sys/unix"
)

func main() {
    unix.Umask(0)
    if err := os.Mkdir("dirname", 0775); err != nil {
        log.Fatalf("failed to create directory: %v", err)
    }
}

//go:build unix 应该为 true“如果 goos 是 unix 或类 unix 系统”,每:https://pkg.go.dev/cmd/go#hdr-Build_constraints

旧的方法是使用 syscall.umask(0)。此软件包现已弃用:https://go.googlesource.com/proposal/+/refs/heads/master/design/freeze-syscall.md

以上就是《创建具有特定权限的文件夹的方法》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>