如何以root身份在Ubuntu上运行tomcat6?

我有一个在Ubuntu上运行的现有软件包,它使用chroot jail,因此需要以root身份运行。 我想从Ubuntu上运行的Tomcat6中运行的Java Web应用程序执行此操作,所以推测必须以Tomcat6身份运行Tomcat6,而不是Tomcat6用户。

我如何去改变tomcat6而不是tomcat6用户运行?

我猜这与先前的问题有关?

Ubuntu – 非root用户可以在chroot jail中运行进程吗?

以root身份运行Tomcat … *

假设您已经从Ubuntu存储库安装了tomcat6软件包,请编辑/etc/init.d/tomcat6文件并更改下列行:

TOMCAT6_USER=tomcat6 

读书

 TOMCAT6_USER=root 

话虽如此…

在不受信任的客户端(如Internet)访问的环境中,不build议以root身份运行Tomcat。 问题是,如果Tomcat或其中运行的某个Web应用程序以某种方式被利用,则它们可以完全访问底层系统。 他们可以修改文件,执行进程等。

当然,这个机会很渺茫,但是最好的计划是最坏的和最好的希望。

更安全的方法是继续运行Tomcat作为默认的tomcat6用户,并以更孤立的方式调用外部chroot进程。 你如何做到这一点取决于正在调用的过程和需要发生的事情。

如果您发布被调用stream程的信息,它在做什么以及为什么其他人将能够帮助您find实现这一目标的最佳方式。 例如,您可以设置一个监视器,在目录内容发生更改时执行chroot任务,或者Tomcat可以调用的本地Web服务来运行该进程。

难道你不能设置软件包可执行的粘性位? 这将始终作为文件的所有者运行,在这种情况下,它将是root。

使所有用户(或者至less包括tomcat6的组)都可执行二进制文件,并设置用户粘滞位。

$ sudo chmod + x binary

要么

$ sudo chmod 750二进制文件//(在文件组的组中有tomcat6)

然后

$ sudo chmod u + s二进制文件

那应该这样做,除非没有。 我没有chroot的实际经验,但在一个标准的设置,这将工作。

另外,可以添加tomcat6 sudoers文件,并允许它运行这个“二进制”没有密码validation?

想想看。