有没有办法让tomcat 7服务器(在Ubuntu服务器上运行)在命令行中执行sudo命令?在这种特定情况下,我希望能够从另一台服务器关闭系统。我必须使用什么代码?而且我是否必须以root用户身份运行tomcat服务器,还是可以仅在执行此操作时在运行时获得这些特权?谢谢你的帮助:)
无需以root用户身份运行Tomcat,您只需添加tomcat用户/etc/sudoers即可允许他运行超级用户命令,例如sudo shutdown now。通过这种方式,您可以指定用户可以执行的所需命令子集。例如,只允许他跑步shutdown:
/etc/sudoers
sudo shutdown now
shutdown
tomcat ALL=NOPASSWD: /sbin/shutdown
要从Java代码运行shell命令,可以调用Runtime.exec()或使用之一ProcessBuilder。
Runtime.exec()
ProcessBuilder
PS还要尝试搜索有关/etc/shutdown.allow允许该文件中列出的任何用户运行shutdown命令的文件。但是我从来没有用过。
/etc/shutdown.allow