首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用非root用户sudo-ing tomcat启动和以root用户运行一样吗?

问用非root用户sudo-ing tomcat启动和以root用户运行一样吗?
EN

Stack Overflow用户
提问于 2013-07-07 00:24:26
回答 3查看 3.3K关注 0票数 2

我读到过,以root用户身份运行Tomcat是一个安全问题。我希望Tomcat监听端口80,这是Centos中的一个特权端口。我已经创建了一个用户并将他添加到了轮组中。该用户使用sudo sh startup.sh启动tomcat up。我不是基于unix操作系统的专家,所以我仍然很困惑。如果我以root身份启动tomcat,我是否已经暴露了相同的漏洞?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-07 01:27:40

如果使用sudo调用启动脚本,则以root身份运行tomcat。您说得对,我们不建议以root用户身份运行tomcat。非root用户不能绑定到端口80,有一些解决方案可以解决这个问题。一种方法是以非root用户身份运行tomcat,并使tomcat侦听端口8080。启用防火墙并将指向端口80的请求转发到端口8080。

代码语言:javascript
复制
service iptables start

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

iptables-save
service iptables restart
票数 2
EN

Stack Overflow用户

发布于 2013-07-07 02:45:11

是的,您实际上是以root身份运行Tomcat,并且不推荐这样做。

您可以使用Authbind在端口80上直接运行Tomcat。它很容易在Ubuntu上配置,我对CentOS不太确定。您可以在here中找到一些说明(它们是针对Tomcat6的,但其中大部分可能仍然适用于Tomcat7)。

或者,您可以让Apache侦听端口80,并使用mod_proxy或mod_jk将请求转发到端口8080上的Tomcat。

票数 2
EN

Stack Overflow用户

发布于 2013-07-07 00:45:55

请注意,在端口80上运行tomcat的推荐解决方案是在Apache web服务器上使用mod-jk,而不是让tomcat直接侦听端口80。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17504794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档