Linux 文件系统位置不可变文件

Linux 文件系统位置不可变文件

我有一个在图像创建时生成的文件,它描述了图像的结构。该文件可以在运行时更改 - 但这没有意义,因为更改不会反映在系统中。

这个文件应该放在linux目录结构中的什么位置呢?

  • /etc:这对我来说意味着这是一个可以在系统操作中更改的配置。不适合。
  • /var:这意味着文件在运行时被更改。不适合。
  • /proc:对我来说最有意义 - 描述系统状态的任意文件。但许多文件也会在运行时发生更改。

答案1

文件系统层次结构标准 3.0 版(2015 年发布)是这样说的/etc

3.7. /etc :主机特定的系统配置

3.7.1.用途 /etc 层次结构包含配置文件。 “配置文件”是用于控制程序运行的本地文件;它必须是静态的并且不能是可执行的二进制文件。

建议将文件存放在/etc的子目录中,而不是直接存放在/etc中。

3.7.2.要求 /etc 下不得存在任何二进制文件。

注意不要求也不暗示文件需要在系统操作中更改。

也有实际先例:许多发行版将标识发行版名称和版本的文件放入/etc/etc/redhat-releaseRHEL、/etc/SuSE-releaseSuSE、/etc/debian_versionDebian 等。此类文件通常仅在安装重要补丁级更新时由包管理系统更新。在通过重新加载完整系统映像来“云式”维护的系统上,这些文件仍应存在,但在特定映像的生命周期内实际上永远不会改变 - 就像您的映像描述文件一样。

如果您想明确表示图像描述文件不会被更改,您可以将chattr +i其标记为不可变的(假设您使用支持该属性的文件系统类型)。之后,需要一个故意的、很少使用的特权命令来使文件再次可更改。

相关内容