使用 sudo 创建文件

admin 阅读:101 2024-03-20

使用 sudo 创建文件

问题内容

我希望使用 Go 的 os.Create(filename) 方法创建一个文件(相当于“mkdir filename”)。但是我没有该文件夹的写入权限。是否有“sudo mkdir filename”的 Go 方法?我在官方文档或其他地方找不到任何对此的引用。


正确答案


golang 可执行文件是从运行可执行文件的用户上下文中执行的。如果你执行 go run main.go ,它会以“you”的身份运行。如果你执行 sudo go run main.go 它将以 root 身份运行。

因此,只需像具有 sudo 一样编写您的应用程序即可。并确保运行 sudo go run main.go

写入文件的示例程序:https://www.codesou.cn/link/69ddb50142a89123ba6f870ab07e6fbb

package main

import (
    "fmt"
    "os"
)

func main() {
    // Choose your own perms here
    file, err := os.OpenFile("myfile.txt", os.O_CREATE|os.O_WRONLY, 0644)
    if err != nil {
        panic(err)
    }

    _, err = file.WriteString("Hello World!")
    if err != nil {
        panic(err)
    }
    file.Close()

    data, err := os.ReadFile("myfile.txt")
    if err != nil {
        panic(err)
    }

    fmt.Println(string(data))
}
声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!