2012-11-22 18 views
0

我見過人們建議/ var/lib但是這在我的系統上不起作用。除/ var/lock和/ var/log外,/ var的每個子目錄都是隻讀的。你把全局應用程序數據放在Linux上(特別是Mint 13)?

我只需要編寫一個Linux shell腳本來授予超級用戶訪問權限嗎?還是有基於Java的解決方案?

/bin和/ usr都是系統文件目錄,所以我不想(也不能)在那裏存儲文件。

只要應用程序只需要在用戶中運行我可以使用:

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

的數據目錄。

但持續性系統數據呢?那去哪了?

額外注意:我也有MacOS的這個問題。我可以使用/用戶/庫/應用程序支持用戶特定的數據,但我無法訪問全局目錄。

第二個注意:我知道並使用了Preferences API。我正在尋找一種方法來存儲除此之外的數據。

+0

它是什麼樣的全局應用程序數據? – LtWorf

+0

通常,'/ var/lib'用於此目的。你確定你沒有訪問? – onon15

+0

爲什麼您需要以普通用戶的身份修改系統數據? –

回答

1

正常情況下,應用程序是使用系統的打包工具安裝的。但是你也可以編寫自己的安裝腳本。在安裝過程中,以root身份運行,可能會創建一個新組,並且該組將擁有/ var/lib下的新目錄。例如,找到命令做到這一點:

$ 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 定位,給人它有權讀取/ var/lib/slocate子目錄。

就你而言,你(你的安裝程序)也會設置寫入權限,所以應用程序可以代表用戶在那裏寫入數據。

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

希望這有些幫助。

相關問題