1. 程式人生 > >如何設置WebLogic生成的日誌文件的權限?

如何設置WebLogic生成的日誌文件的權限?

文件 true 即使 dem 定義 oracl fault 1.3 補丁

在運維的過程中,有時我們需要以有別於啟動WebLogic的用戶去訪問或收集日誌等信息,以及時了解系統運行情況,這就要求日誌文件的訪問權限是允許其他用戶訪問的。一般情況下,新生成的文件默認權限是根據操作系統的umask的設置決定的。那如何改變WebLogic運行時產生的日誌文件的訪問權限呢?

如果通過操作系統的umask命令修改是不會生效的,因為在WebLgoic的啟動腳本startWebLogic.sh中有類似這麽一條命令“umask 022”,其覆蓋了操作系統的設置。

比如startWebLogic.sh中設置了“umask 037”,那麽生成的日誌文件訪問權限如下:

-bash-4.2$ ls -l
total 13164
-rw-r----- 1 oracle oracle     842 Jul 25 04:30 access.log
-rw-r----- 1 oracle oracle 2150626 Jul 27 10:35 AdminServer.log
-rw-r----- 1 oracle oracle  576289 Jul 27 10:35 base_domain.log

我們可以通過修改腳本中umask的值來控制日誌等新生成文件的訪問權限。

這個在WebLogic 11g上可以正常工作。但是在WebLogic 12.2.1.1.0 和12.2.1.2.0上即使設置了umask也不會生效,這是WebLogic的bug(Bug 24794915),此缺陷在12.2.1.3.0上已經修復。

在這兩個版本(12.2.1.1.0 和12.2.1.2.0)上需要安裝這個補丁。12.2.1.3.0上已經支持了下面的參數,不需要再安裝補丁。

安裝補丁後支持了一個參數-Dweblogic.DefaultLogFilePermissionsEnabled,其默認是true。

此參數的含義是當-Dweblogic.DefaultLogFilePermissionsEnabled=true,新生成的文件使用默認的文件訪問權限640。如果設置-Dweblogic.DefaultLogFilePermissionsEnabled=false,那麽新生成的文件的訪問權限受startWebLogic.sh腳本中的umask設置的值控制,采用自定義的設置。

所有在WebLogic12.2.*版本上,需要在啟動該參數中加上-Dweblogic.DefaultLogFilePermissionsEnabled=false,然後再修改startWebLogic.sh中的umask值。Java options一般在setDomainEnv.sh中設置。

這個參數控制的是WebLogic新生成的所有的文件,不僅僅是日誌文件。

另外如果WebLogic Server是通過NodeManager啟動的,需要在startNodeManager.sh腳本中設置。

如何設置WebLogic生成的日誌文件的權限?