2012-08-08 26 views
3

我最近被提升爲管理員,這意味着我的活動目錄用戶名擁有更多的權限。因此,我現在有權讀/寫我們的服務器,這有點麻煩。強制Java在運行本地代碼時擁有隻讀權限

之前,如果我運行了任何運行類似my_remote_file.delete()的本地代碼,那麼它會忽略該方法。 (從技術上講,它會返回false。)但是,由於我的活動目錄用戶名現在被賦予了我們服務器上的所有權限,所以Java在運行本地代碼時沒有問題,並且它實際上會影響我們的服務器。

我不想假設我在運行本地代碼時總是要小心,並且我想知道如果你們有任何想法,只有在我在本地運行本地代碼的情況下才能降低我的權限蝕。換句話說,當我在Eclipse中運行任何本地代碼時,我想只讀取所有服務器目錄中的權限。

我想到的一個解決方案是簡單地創建另一個用戶,在活動目錄中具有隻讀權限,但我認爲維護兩個帳戶在將來不會順利擴展。

回答

2

這不會完全「忽略」諸如my_remote_file.delete()之類的方法,但如果您使用策略文件,它可以讓您更改某些權限。這將使它所以你不能刪除該文件/local/file

grant { 
    permission java.io.FilePermission 
    "/local/file", "read"; 
}; 

然後調用它像:

java -Djava.security.manager=default -Djava.security.policy=polfile YourEntryPointClass 

(你會做在Eclipse中類似的東西,可能在VM參數)

或者您可以創建自定義SecurityManager並實施checkDelete()checkWrite()引發SecurityExceptions的方法。它可能會給你一個與本地文件系統的物理更改權限類似的結果,而不必創建非特權用戶。

相關問題