我很清楚,从安全angular度来看,运行tomcat6是非常糟糕的,并且会打开正在运行的各种安全风险和攻击媒介。 那就是说:
当我将/etc/init.d/tomcat6中的条目更改为
TOMCAT6_USER=root
然后运行
sudo /etc/init.d/tomcat6 start
我明白了
[fail]
并且没有任何内容写入/ var / log / tomcat6下的日志,并且在/ var / run下没有创buildtomcat6的条目
我如何诊断出现了什么问题?
另外 – 请注意,catalina.err和catalina.out尚未创build。
你想这样做的原因是(a)这是一个运行在开发盒上的虚拟机,(b)它在一个chroot jail中执行一个进程,只有在根(c)进程在chroot jail中运行的软件包是从外部获得的
运行Tomcat不会比运行任何其他应用程序服务器更直接。
更重要的是常识性的安全概念,这将使你的箱子安全。 你一定要使用某种防火墙,特别是如果你的盒子是公共的。
如果你部署的应用程序不安全,并且容易受到SQL注入攻击,那么即使是最昂贵的servlet容器也不能拯救你,你只需要蹩脚的代码。
不要以root身份运行tomcat6。 我不能为我的生活想象为什么你需要/想要做到这一点,如果你有“权限问题”,那么你做错了。
我维护(并继续维护)许多作为各自的tomcat用户运行的tomcat 5和6服务器,在部署webapps时没有任何问题。 以root用户身份运行服务器的安全风险太大,通常是不必要的。
如果你真的想深究它,catalina.out和catalina.err文件可能会有更多的信息,但我认为以root身份运行是一个潜在的致命的想法,所以我可能会把它作为默认的tomcat系统用户。
在这里被问到的问题似乎是 – 你将如何debugging一个shell脚本来看看发生了什么 – 要做到这一点,你会运行它:
sudo bash -x -v /etc/init.d/tomcat6 start
并阅读输出,看看发生了什么。
它实际上看起来像Ubuntu已经成立,不容易这样做。 整个负载的目录已被tomcat6用户(即不是根用户)设置为所有权。 看他们是哪一个 – 运行命令
find / -user tomcat6
出于安全考虑,为了尊重Ubuntu / Tomcat6打包程序的意图,我不打算在这之后发布你要做的事情。