如何設置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生成的日誌文件的權限?