一尘不染

从Tomcat Servlet运行sudo命令

tomcat

有没有办法让tomcat
7服务器(在Ubuntu服务器上运行)在命令行中执行sudo命令?在这种特定情况下,我希望能够从另一台服务器关闭系统。我必须使用什么代码?而且我是否必须以root用户身份运行tomcat服务器,还是可以仅在执行此操作时在运行时获得这些特权?谢谢你的帮助:)


阅读 294

收藏
2020-06-16

共1个答案

一尘不染

无需以root用户身份运行Tomcat,您只需添加tomcat用户/etc/sudoers即可允许他运行超级用户命令,例如sudo shutdown now。通过这种方式,您可以指定用户可以执行的所需命令子集。例如,只允许他跑步shutdown

tomcat ALL=NOPASSWD: /sbin/shutdown

要从Java代码运行shell命令,可以调用Runtime.exec()或使用之一ProcessBuilder

PS还要尝试搜索有关/etc/shutdown.allow允许该文件中列出的任何用户运行shutdown命令的文件。但是我从来没有用过。

2020-06-16