从Tomcat的servlet运行sudo命令(Running sudo command from

2019-10-18 15:41发布

有没有办法让一个Tomcat 7服务器(Ubuntu的服务器上运行),在命令行执行sudo命令? 在这种特殊情况下我想让它可以将系统中的其他服务器关闭。 我会得到什么代码使用? 而且我必须运行Tomcat服务器的根目录或者我可以在运行时,仅这一行动得到这些特权? 谢谢你的帮助:)

Answer 1:

无需运行Tomcat作为root,你可以tomcat的用户只需添加到/etc/sudoers ,让他跑了超级用户命令,如sudo shutdown now 。 这种方式可以让你指定可由用户要执行的命令所需的子集。 例如允许他只运行shutdown

tomcat ALL=NOPASSWD: /sbin/shutdown

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

PS也可以尝试在Google上搜寻有关/etc/shutdown.allow其允许由在它列出的任何用户运行的关闭命令文件。 但我从来没有使用过。



文章来源: Running sudo command from Tomcat servlet