1. 背景说明

却省情况下,Java运行时根据运行它的用户授予安全权限。当Tomcat以系统管理员身份或作为系统服务运行时,Java运行时取得了系统用户或系统管理员所具有的全部权限。这样一来,Java运行时就取得了所有文件夹中所有文件的全部权限。并且Servlets(JSP在运行过程中要转换成Servlets)取得了同样的权限。所以Java代码可以调用Java SDK中的文件API列出文件夹中的全部文件,删除任何文件,最大的危险在于以系统权限运行一个程序。

2. 实施指导

2.1. 当安装账户为超级管理员时

  1. 专门为Tomcat建立一个单独的用户和用户组。
# groupadd tomcatgroup
# useradd -g tomcatgroup -d /home/tomcat -m tomcatuser

为用户设置密码:

passwd tomcatuser

密码要符合强口令要求(密码至少8位长度,至少包含大写字母、小写字母、数字和特殊字符中的两种)。

注:tomcatgroup和tomcatuser为组名和用户名,用户可根据需要自行修改。

  1. 设置权限。

更改Tomcat安装目录属主为tomcatuser用户;为tomcatuser用户添加应用程序(例如webapps,或者单独放置在tomcat安装目录之外的应用目录)目录的的只读权限;如果某些应用程序需要写权限,请单独为其配置tomcatuser的写权限。

  1. 以tomcatuser用户登录后启动Tomcat服务器。

2.2. 当安装账户为普通用户时

  1. 在安装之前就建立一个单独的用户和用户组。
groupadd tomcatgroup
useradd -g tomcatgroup tomcatuser -p tomcatuser
  1. 使用新建立的tomcatuser安装Tomcat后,不要再使用tomcatuser用户启动运行或安装其它程序;如果产品的Web应用被放置在Tomcat安装目录之外,请为tomcatuser添加该目录的只读权限;如果某些应用程序需要写权限,则单独为其配置tomcatuser的写权限。