为了账号安全,请及时绑定邮箱和手机立即绑定

尝试在新创建的目录中创建文件时出现“权限被拒绝”?

尝试在新创建的目录中创建文件时出现“权限被拒绝”?

Go
料青山看我应如是 2023-07-31 14:58:04
我正在尝试使用创建一个目录os.Mkdir(),然后在其中创建文件,类似于此脚本:package mainimport (    "log"    "os"    "path")func main() {    dir := "test_dir"    os.Mkdir(dir, os.ModeDir)    fileName := path.Join(dir, "file.txt")    _, err := os.Create(fileName)    if err != nil {        log.Fatalf("create file: %v", err)    }}但是,如果我运行这个,我会得到> go run fileperms.go2019/10/15 14:44:02 create file: open test_dir/file.txt: permission deniedexit status 1从https://golang.org/pkg/os/#FileMode我并不清楚如何指定FileMode以允许相同的脚本在新创建的目录中创建文件。我怎样才能实现这个目标?
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

0777我发现如果我将权限设置为:我可以在目录中创建文件


package main


import (

    "io/ioutil"

    "os"

    "path"

)


func main() {

    dir := "test_dir"


    os.Mkdir(dir, 0777)


    fileName := path.Join(dir, "file.txt")


    ioutil.WriteFile(fileName, []byte("foobar"), 0666)

}

现在已使用预期内容创建了文件:


> cat test_dir/file.txt 

foobar⏎ 


查看完整回答
反对 回复 2023-07-31
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

在这里,Go 尝试在 AUR 包安装期间在 /tmp 目录内创建。

所以我更改了 /tmp 中的权限:

chmod 0777 -R /tmp

但这还不够,所以我必须更改 /tmp 所有权(它是 root 的):

sudo chown -R "$USER":wheel /tmp


查看完整回答
反对 回复 2023-07-31
  • 2 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信