【问题标题】:Running sudo command from Tomcat servlet从 Tomcat servlet 运行 sudo 命令
【发布时间】:2013-09-17 16:11:19
【问题描述】:

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

【问题讨论】:

  • 听起来是个很糟糕的主意,但是如果您的 tomcat 进程正在由 sudoer 运行,您可以使用 java.lang.Process 来运行您想要的任何命令。

标签: java linux tomcat ubuntu tomcat7


【解决方案1】:

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

tomcat ALL=NOPASSWD: /sbin/shutdown

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

附:还可以尝试搜索/etc/shutdown.allow 文件,该文件允许其中列出的任何用户运行关机命令。但是我没用过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-08
    • 2012-07-29
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多