【问题标题】:Why will os.OpenFile not create a 777 file为什么 os.OpenFile 不会创建 777 文件
【发布时间】:2021-05-11 19:15:31
【问题描述】:

我正在尝试制作一个 0777 文件,但 os.OpenFile 只会为我创建一个 775 文件。你能告诉我为什么权限设置不正确吗?

package main

import (
    "fmt"
    "os"
)

func main(){

    nf, _ := os.OpenFile("hello", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0777)

    fileStat, _ := nf.Stat()
    fmt.Printf("File created with permission: %v \n", fileStat.Mode().String())
    // Output is:
    // File created with permission: -rwxr-xr-x
    // Why is this is 0775 not 0777
}

【问题讨论】:

  • os.OpenFile之后设置nf.Chmod(0777)将正常工作并将权限设置为777。

标签: linux go file-permissions


【解决方案1】:

如“os.MkDir and os.MkDirAll permission value?”中所述:

这些权限被 umask 设置的任何“过滤”。

所以首先检查您的umask 是否已设置(例如 002):这可以解释为什么创建的文件显示为 775 而不是 777 (umask 000)

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2011-08-01
    • 2023-02-02
    • 1970-01-01
    相关资源
    最近更新 更多