在Mac和Linux上存储非用户特定的应用程序数据 – 权限

我不久前发布了一个关于在Linux上存储非用户特定应用程序数据的问题。

正如你所看到的,我打算在Mac上使用“/ Library / Application Support”,或者在Linux上使用“/ var / lib”或“/ usr / share”。

在现有的应用程序(当前仅限于Windows)上,我们使用Vista和Windows 7上的“\ ProgramData”和Windows XP上的“\ Documents and Settings \ All Users”(均使用System.getenv(“ALLUSERSPROFILE”)在Mac或Linux上)。

我在Mac和Linux的位置find的问题(不像Windows的问题)是非root / admin用户无法访问的,这种做法无法达到使用它们的目的。

这种情况最好的做法是什么? 我们可以简单地将应用程序数据存储在用户的主目录中。 我实际上并不会因此而死气沉沉,因为当新用户尝试使用它时,应用程序显得完全“新”似乎是合理的。 这给我们带来的主要问题是,每个用户都必须input序列号才能激活应用程序(激活信息是我们需要存储的“应用程序数据”的一部分)。 这不是很理想。

这就是说,如果没有真正的select,那么我认为它将不得不做。

Solutions Collecting From Web of "在Mac和Linux上存储非用户特定的应用程序数据 – 权限"

非用户特定的应用程序数据是什么意思?

  • 应用程序所需的只读资源,例如本地化字符串或按钮图标:

    • 在Mac上,它们存储在应用程序包本身,在Resources子文件夹中
    • 在Linux上,它们可以存储在应用程序二进制文件附近,例如/opt/<app>/etc中。

  • 读/写属性,如序列号:

    • 您可以将此信息视为用户特定的应用程序数据,因此应该放在$HOME目录中的某个位置
    • 您可以将此信息视为计算机范围的应用程序数据,在这种情况下,应该在软件安装过程中执行其设置,即具有管理权限。

/ Users / Shared /对每个人都是可写的。 这就是说, 如果你需要支持整个计算机的许可证 ,序列号最好的地方,恕我直言,确实是/图书馆/应用程序支持。 您将不得不使用授权服务一次来要求管理员密码并在那里保存序列号。 如果用户未能输入管理员密码,请将序列号保存在〜/ Library / Application Support中。