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

时间:2010-02-16 11:54:59

标签: linux macos

我刚才发布了this问题,关于在Linux上存储非用户特定应用程序数据的位置。

如您所见,我打算在Mac上使用“/ Library / Application Support”,在Linux上使用“/ var / lib”或“/ usr / share”。

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

我发现Mac和Mac的问题Linux位置(与Windows不同)是非root用户/管理员用户无法访问它们,这有点违背了使用它们的目的。

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

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

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

答案 1 :(得分:1)

/ Users / Shared /对每个人都可写。也就是说,如果你需要支持计算机范围的许可证,序列号的最佳位置,恕我直言,确实/图书馆/应用程序支持。您必须使用授权服务一次来询问管理员密码并在那里保存序列号。如果用户输入管理员密码失败,请将序列号保存在〜/ Library / Application Support中。