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

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

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

我该如何将 tomcat6 更改为以 root 身份而不是 tomcat6 用户身份运行?

答案1

我猜这与之前的一个问题有关?

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

以 root 身份运行 Tomcat...*

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

TOMCAT6_USER=tomcat6

读书

TOMCAT6_USER=root

话虽如此...

在不受信任的客户端(例如互联网)可以访问 Tomcat 的环境中,不建议以 root 身份运行 Tomcat。问题是,如果 Tomcat 或在其中运行的某个 Web 应用程序以某种方式被利用,它们将拥有对底层系统的完全访问权限。例如,它们可以修改文件、执行进程等。

尽管这种情况发生的可能性很小,但最好还是做最坏的打算,抱最好的希望。

更安全的方法是继续以默认 tomcat6 用户身份运行 Tomcat,并让其以更隔离的方式调用外部 chrooted 进程。如何执行此操作取决于被调用的进程以及需要发生的情况。

如果您发布有关被调用进程的信息,包括它在做什么以及为什么这样做,其他人将能够帮助您确定实现此目的的最佳方法。例如,您可以设置一个监视器,每当目录内容发生变化时执行 chrooted 任务,或者设置 Tomcat 可以调用来运行进程的本地 Web 服务。

答案2

您无法设置软件包可执行文件的粘性位吗?这样它就会始终以文件所有者的身份运行,在本例中就是 root。

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

$sudo chmod + x 二进制

或者

$sudo chmod 750 binary //(将 tomcat6 置于文件组的组中)

然后

$sudo chmod u+s 二进制

除非不行,否则应该可以。我没有使用 chroot 的实际经验,但在标准设置中这会起作用。

另外,是否可以将 tomcat6 添加到 sudoers 文件中,并允许它运行无需密码验证的“二进制文件”?

想一想。

相关内容