web服務器專題:tomcat(三)tomcat-users.xml 配置文件
回顧:web服務器專題:tomcat(二)模塊組件與server.xml 配置文件
Tomcat管理模塊

安裝Tomcat后,訪問127.0.0.1/8080可以看到這個首頁,上圖中的三個按鈕即為Tomcat的管理功能,該模塊是為了方便用戶管理Tomcat的web應用,以及查看tomcat的狀態而設。該模塊的相關控制文件主要為 /conf/tomcat-users.xml
Server Status
該部分為整個tomcat服務的狀態監聽,頁面內提供基本的tomcat運行狀態及內存運行情況,便于運維人員查看。
Manager App
當前tomcat部署的web應用管理平臺,提供對web應用的部署及卸載功能,可以在線部署應用,以及控制應用的啟停、會話。
Host Manager
查看 Tomcat 虛擬機管理器,本質即是對<host>標簽的管理
Tomcat-user內置角色及權限
Tomcat的角色管理通過tomcat-users.xml文件控制,一下為一個tomcat-users.xml實例
<tomcat-users> <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="tomcat" roles="manager-gui"/> <user username="admin" password="admin" roles="manager-script"/> </tomcat-users>
<role>標簽為角色,rolename屬性為角色名稱,這里的rolename不是自定義的,而是tomcat內置的。配置好角色后,<user>標簽則為我們自定義的標簽,即我們定義一個用戶,username為賬號名稱,password為密碼,roles屬性則為以上定義好的<role>標簽的rolename,可以通過 “,” 隔開配置一個用戶擁有多個角色權限。
Tomcat針對manager內置了6個角色,分別為 admin-gui , admin-script , manager-gui , manager-script , manager-status , manager-jmx
- 負責Server Status、Manager App 功能的角色
manager-gui:訪問 HTML 頁面
manager-status:僅訪問 “服務器狀態” 頁面
manager-script:訪問腳本頁面,以及 “服務器狀態” 頁面
manager-jmx:訪問 JMX 代理接口和 “服務器狀態” 頁面
- 負責 Host Manager 功能的角色
admin-gui:訪問HTML頁面
admin-script: 訪問腳本頁面
一個栗子
這里基于新部署安裝的tomcat(實際tomcat 9)進行一次全部權限的放開,作為一個實際操作的例子流程。(聲明:實際生產不建議以下操作,會造成極高的安全問題)
對 管理功能 的全部放開,即tomat首頁中的 Server Status,Manager App,Host Manager 功能全部開放,首先進入tomcat的/conf目錄下,打開tomcat-users.xml文件,復制以下內容到配置文件中。
<role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="admin" roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>
這里將所有的角色role進行了聲明,然后定義了一個admin的賬戶,將所有的角色都賦予它,使他用于全部權限。
然后將/webapps/manager/META-INF/和webapps/host-manager/META-INF/下的context.xml進行修改(manager和host-manager目錄下的context.xml兩個都要改)
將context.xml的只針對本地請求放行這一設置注釋掉即可,如下:
<Context antiResourceLocking="false" privileged="true" > <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --> <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> </Context>
至此,tomcat首頁即可使用設置的admin賬號訪問管理頁面了(tomcat配置修改后無需重新啟動也可加載)。

浙公網安備 33010602011771號