1. 背景说明
却省情况下,Java运行时根据运行它的用户授予安全权限。当Tomcat以系统管理员身份或作为系统服务运行时,Java运行时取得了系统用户或系统管理员所具有的全部权限。这样一来,Java运行时就取得了所有文件夹中所有文件的全部权限。并且Servlets(JSP在运行过程中要转换成Servlets)取得了同样的权限。所以Java代码可以调用Java SDK中的文件API列出文件夹中的全部文件,删除任何文件,最大的危险在于以系统权限运行一个程序。
2. 实施指导
2.1. 当安装账户为超级管理员时
- 专门为Tomcat建立一个单独的用户和用户组。
# groupadd tomcatgroup
# useradd -g tomcatgroup -d /home/tomcat -m tomcatuser
为用户设置密码:
passwd tomcatuser
密码要符合强口令要求(密码至少8位长度,至少包含大写字母、小写字母、数字和特殊字符中的两种)。
注:tomcatgroup和tomcatuser为组名和用户名,用户可根据需要自行修改。
- 设置权限。
更改Tomcat安装目录属主为tomcatuser用户;为tomcatuser用户添加应用程序(例如webapps,或者单独放置在tomcat安装目录之外的应用目录)目录的的只读权限;如果某些应用程序需要写权限,请单独为其配置tomcatuser的写权限。
- 以tomcatuser用户登录后启动Tomcat服务器。
2.2. 当安装账户为普通用户时
- 在安装之前就建立一个单独的用户和用户组。
groupadd tomcatgroup
useradd -g tomcatgroup tomcatuser -p tomcatuser
- 使用新建立的tomcatuser安装Tomcat后,不要再使用tomcatuser用户启动运行或安装其它程序;如果产品的Web应用被放置在Tomcat安装目录之外,请为tomcatuser添加该目录的只读权限;如果某些应用程序需要写权限,则单独为其配置tomcatuser的写权限。
声明:本文采用 BY-NC-SA 协议进行授权 | 星期九
原创文章转载请注明:转自《用于运行Tomcat的用户必须是一个没有特权的用户》