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

What should I pass for the `perm` argument to ioutil.WriteFile?

ioutil.WriteFile 采用 perm 参数 - 如果要写入的文件尚不存在,则使用权限 perm:

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

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

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

"generally recommended" 没有标准权限。这更像是一个 OS 问题而不是围棋问题。

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

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

In the general case, is there a recommended value to pass for the perm argument?

0666。这是 Go 的 os.Create, and is also the value of MODE_RW_UGO, used when a file is created by tools such as touch.

使用的值

More specifically, I am writing a file which is a transformation of an existing file. Is it recommended to read the permissions of the input file (using os.Stat) and use the same permissions for the output file?

除了纯粹的 cp,工具似乎不会这样做。如上,新建文件的工具一般只用0666.