snap 包中用户可编辑的系统范围配置文件

snap 包中用户可编辑的系统范围配置文件

我正在构建一个 snap 包,我的应用程序需要一个配置文件,该文件通常放在 /etc 下,并且只能由 root 用户编辑。

我发现我可以通过例如 $SNAP/myconfig 来轻松引用 snap 限制内的配置文件。但是,这会使 myconfig 变为只读。

那么,如何将配置文件放入 $SNAP_DATA 或其等效文件?我猜想这样的文件必须暴露给系统(用 snappy 的说法)并且可由系统用户(root)写入。

答案1

我通常的做法是让软件读取多个文件:

  • 用户配置
  • 全局配置
  • 默认配置

堆栈上部的每个键(例如 yaml 或 json,或者只是键值对)都会覆盖下面的键。

这样,您就可以发送您的默认配置$SNAP,如果用户设置了全局配置,他可以$SNAP_DATA使用相同的文件名进行调整(或复制)。并且在用户级别与$SNAP_USER_DATA相同。

请注意,您可以将配置应用程序作为 snap 的一部分来发布,以构建您的配置文件。

答案2

有一个可写的目录供您的 snap 使用,snap 可以在其中读取和写入文件。我建议您为该配置文件创建一个 etc/ 子目录。可能需要提供一个包装器来调用编辑器并使其能够访问该文件。

相关内容