从Tomcat servlet运行sudo命令

时间:2013-09-17 16:11:19

标签: java linux tomcat ubuntu tomcat7

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

1 个答案:

答案 0 :(得分:1)

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

tomcat ALL=NOPASSWD: /sbin/shutdown

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

P.S。还可以使用google搜索/etc/shutdown.allow文件,该文件允许其中列出的任何用户运行shutdown命令。但我从来没有用过它。