
我希望使用 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.php.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))
}










