您在哪里将全局应用程序数据放在Linux上(特别是Mint 13)?

时间:2012-11-22 21:18:56

标签: java linux macos data-storage

我见过人们建议使用/ var / lib,但这对我的系统不起作用。 / var的每个子目录都是只读的,除了/ var / lock和/ var / log。

我是否只需要编写Linux shell脚本来授予超级用户访问权限?或者是否有基于Java的解决方案?

/ bin和/ usr都是系统文件目录,所以我不想(也不能)在那里存储文件。

只要应用程序只需要在用户中操作,我就可以使用:

System.getProperty("user.home") + File.separator + ".appname"'

表示数据目录。

但是持续系统范围的数据呢?那去哪了?

额外注意:我也遇到了MacOS这个问题。我可以使用/ user / Library / Application Support来获取用户特定的数据,但我无法访问全局目录。

第二个注意:我知道并使用了Preferences API。我正在寻找一种存储数据的方法,不包括那些。

2 个答案:

答案 0 :(得分:1)

通常使用系统的打包工具安装应用程序。但您也可以编写自己的安装程序脚本。在安装过程中,以root用户身份运行,可以创建新组,并在该组下创建/ var / lib下的新目录。例如, locate 命令执行此操作:

$ ls -l /usr/bin/locate
-rwx--s--x 1 root locate 42032 Nov 17 19:33 /usr/bin/locate

这是数据目录:

drwxr-x--- 2 root locate 4096 Nov 15  2010 /var/lib/slocate

locate命令使用setgid功能将自己的进程组ID设置为 locate ,这使其有权读取/ var / lib / slocate子目录。

在您的情况下,您(您的安装程序)也会设置写入权限,以便应用程序可以代表用户在那里写入数据。

答案 1 :(得分:0)

从我收集的内容中,/ var / lib /目录是放置东西的正确位置。访问这些目录时,您需要是root用户。

您可以尝试使用http://www.freedesktop.org/wiki/Software/polkit工具包来提升linux中的权限。 (这是免费软件。)

http://www.amug.org/~glguerin/sw/#authkit这样的东西可能对mac有帮助。

在Linux上,您还可以使用gksudo运行安装部分的例程。或者使用这里提到的命令。 https://stackoverflow.com/a/690491/1790338

希望这有所帮助。

相关问题