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

Wil*_*iam 6 linux macos

我刚才发布了这个问题,关于在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位置找到的问题(与Windows不同)是非root用户/管理员用户无法访问它们,这有点违背了使用它们的目的.

这种情况的最佳做法是什么?我们可以简单地将应用程序数据存储在用户的主目录中.我实际上并不会反对这一点,因为当新用户尝试使用它时,应用程序看起来完全是"新的"似乎是合理的.这给我们带来的主要问题是每个用户都必须输入序列号才能激活应用程序(激活信息是我们需要存储的'应用程序数据'的一部分).这不是很理想.

也就是说,如果没有真正的替代方案,那么我认为它必须这样做.

mou*_*iel 4

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

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

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

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

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