打造Tomca安全启动帐号
Tomcat是一个世界上广泛使用的支持JSP和servlets的Web服务器。它在JAVA运行时上能够很好地运行并支持Web应用部署。会因为设置不当,造成灾难性的后果。在Tomcat默认安装,Tomcat作为一个系统服务运行,如果没有将其作为系统服务运行,缺省地几乎所有Web服务器管理员都是将其以Administrator权限运行这两种方式都允许Java运行时访问Windows系统下任意文件夹中的任何文件。缺省情况下,Java运行时根据运行它的用户授予安全权限。当 Tomcat以系统管理员身份或作为系统服务运行时,Java运行时取得了系统用户或系统管理员所具有的全部权限。这样一来,Java运行时就取得了所有文件夹中所有文件的全部权限。并且Servlets(JSP在运行过程中要转换成Servlets)取得了同样的权限。所以Java代码可以调用Java SDK中的文件API列出文件夹中的全部文件,删除任何文件,最大的危险在于以系统权限运行一个程序。当任一Servlets含有如下代码:
Runtime rt = Runtime.getRuntime();
rt.exec(“c:\SomeDirectory\SomeUnsafeProgram.exe”),其服务是以system权限启动。根据权限最小安全原则,降低了脚本所获取的操作本地系统权限。此操作如下:
新建一个帐户
1. 用”ITOMCAT_计算机名”建立一个普通用户
2. 为其设置一个密码
3. 保证”密码永不过期”(Password Never Expires)被选中
修改Tomcat安装文件夹的访问权限
1. 选定环境参数CATALINA_HOME或TOMCAT_HOME指向的Tomcat安装文件夹。
2. 为”ITOMCAT_计算机名”用户赋予读、写、执行的访问权限。
3. 为”ITOMCAT_计算机名”用户赋予对WebApps文件夹的只读访问权限。
4. 如果某些Web应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。
Tomcat作为系统服务
1. 到”控制面板”,选择”管理工具”,然后选择”服务”。
2. 找到Tomcat:比如Apache Tomcat.exe等等,打开其”属性”。
3. 选择其”登录”(Log)标签。
4. 选择”以…登录”(Log ON Using)选项。
5. 键入新建的”ITOMCAT_计算机名”用户作为用户名。
6. 输入密码。
7. 重启机器。
在DOS窗口下运行Tomcat步骤:
1. 在”开始”按钮的”运行”框中键入CMD以打开一个DOS窗口。
2. 键入”RunAs /user:ITOMCAT_计算机名 CMD.exe”命令。
3. 在询问”ITOMCAT_计算机名”用户的密码时输入设置的密码。
4. 这将打开一个新的DOS窗口。
5. 在新开的DOS窗口中,转换到Tomcat的bin文件夹内。
6. 键入”catalina run”命令。
7. 关闭第一个DOS窗口。
设置一下程序
CMD.EXE NET.EXE ATTRIB.EXE At.EXE NET1.EXE FTP.EXE TELNET.EXE COMMAND.COM CAcls.EXE netstat.exe;system 全部权限 ,其它用户无权限。
1 楼 pyhq2008 2010-07-02 楼主,我按这种方法试了,tomcat可以启动,但是我发现我的一个包中的类总是调用不了,也就是WEB-INF文件夹下的classes里面的类,老是出现org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/development/tools这种错误,但是 我以windows 2003的系统管理员账号启动却正常,我百思不得其解,望不吝赐教!谢谢。我的tomcat版本是6.0.20