我应该为ioutil.WriteFile的`perm`参数传递什么?

时间:2019-05-08 10:23:07

标签: go file-io file-permissions

ioutil.WriteFile带有一个perm参数-如果尚不存在要写入的文件,则会使用权限perm创建该文件:

func WriteFile(filename string, data []byte, perm os.FileMode) error

在一般情况下,perm参数是否有推荐值通过?

更具体地说,我正在编写一个文件,它是对现有文件的转换。是否建议读取输入文件的权限(使用os.Stat)并对输出文件使用相同的权限?

2 个答案:

答案 0 :(得分:1)

没有“通常推荐”的标准许可。这更多的是操作系统问题,而不是执行问题。

  • 您要文件可执行吗?
  • 您希望它可写吗?
  • 您是否希望其他帐户能够访问它以及具有哪些权限

如果您正在获取一个现有文件并将其转换为输出文件,并且从逻辑上来说,您的应用程序对两个文件具有相同的权限是可以的,那么复制权限听起来是一个合理的主意(除非您预见到安全问题)

答案 1 :(得分:0)

  

在一般情况下,perm参数是否有推荐值通过?

0666。这是Go的os.Create使用的值,也是MODE_RW_UGO的值,在touch之类的工具创建文件时使用。

  

更具体地说,我正在编写一个文件,它是对现有文件的转换。是否建议读取输入文件的权限(使用os.Stat)并对输出文件使用相同的权限?

除纯cp之外,工具似乎无法做到这一点。如上所述,创建新文件的工具通常只使用0666