【问题标题】:Secure Tomcat Webapps folder from direct user access防止用户直接访问 Tomcat Webapps 文件夹
【发布时间】:2011-02-14 12:05:55
【问题描述】:
有没有一种方法可以保护 Tomcat 中的 webapps 文件夹不被系统用户直接访问?换句话说,我不希望用户登录到服务器机器并访问 webapps 文件夹。但是,id 仍然喜欢相应地提供 webapps 文件夹的内容。
像 TrueCrypt 这样的解决方案可以加密文件夹吗?或者类似 Windows 管理员权限的东西?但是,id 仍然需要用户登录到服务器机器来启动和停止 tomcat(bin 文件夹)但不能访问 webapps 文件夹。
2011 年 2 月 15 日更新:是的,它是为了阻止某人登录到服务器计算机并部署/取消部署。由于我将使用windows机器,我可能会限制对tomcat文件夹的访问,并在桌面上创建一个exe来启动和停止服务。
【问题讨论】:
标签:
security
web-applications
tomcat
directory
password-protection
【解决方案1】:
我不确定您所说的“访问 webapps 文件夹”是什么意思,我假设这意味着用户可以部署/取消部署 webapps 并启动/停止 Tomcat。在 Unix 中,这可以通过以下方式实现:
- 为 Tomcat 创建一个用户。更改
umask,使所有创建的文件只能由该用户读取,其他人无法读取,目录类似。
- 创建将停止/启动 Tomcat 的用户(例如
system)。
- 为用户
system 授予sudo 权限只是为了能够启动/停止Tomcat。例如,您可以将 catalina.sh start 和 catalina.sh stop 脚本外部化到 /usr/local/bin 的某个位置,并授予 sudo 访问这些脚本的权限。
- 创建一个脚本,将
yourwebapp.war 复制到$tomcat_home/webapps 或调用相关的Tomcat 管理器命令(用于部署/取消部署)。同样,只为该脚本授予sudo 权限,否则将其模式更改为700,因此system 用户甚至无法读取它。