无需以root用户身份运行Tomcat,您只需添加tomcat用户/etc/sudoers
即可允许他运行超级用户命令,例如sudo shutdown Now
。通过这种方式,您可以指定用户可以执行的所需命令子集。例如,只允许他跑步shutdown
:
tomcat ALL=NOPASSWD: /sbin/shutdown
要从Java代码运行shell命令,可以调用Runtime.exec()
或使用之一ProcessBuilder
。
PS还要尝试搜索有关/etc/shutdown.allow
允许该文件中列出的任何用户运行shutdown命令的文件。但是我从来没有用过。