【问题标题】:Using JNA or similar to shutdown and restart computer in linux and mac使用 JNA 或类似方法在 linux 和 mac 中关闭和重启计算机
【发布时间】:2011-10-03 09:53:20
【问题描述】:

我正在尝试用 java 编写一个函数,它将关闭、强制关闭、重新启动和强制重启计算机,它应该可以在 Windows、Linux 和 Mac 上运行。

Windows 不是问题,但由于 sudo 权限,我无法在 Linux 上运行关闭命令。因此,我正在考虑使用 JNA 来关闭计算机(我知道您可以在 Windows 上使用 JNA 来执行此操作),但是我在网上找不到任何适用于 linux 或 mac 的示例。

谁能帮帮我?将不胜感激!

即使不是通过 JNA,只要我能找到一些方法来完成这件事,它也会对我有很大帮助。

【问题讨论】:

    标签: linux jna restart shutdown


    【解决方案1】:

    如果您仅使用 Java 就可以简单地覆盖系统保护,那将是一个很大的安全漏洞!我很惊讶你可以在 Windows 上做到这一点。

    无论如何,只有当您对您的机器具有管理访问权限以将程序设置在有权关闭/重新启动的某个组中时,才能做到这一点。否则,你不能这样做。

    我认为您可以直接将这些权限授予您的 JVM,但如果其他 java 程序尝试关闭,这可能会很危险。

    【讨论】:

    • 是的,Windows 可以通过 Runtime.exec() 使用关机命令。目前我正在为 linux 做的是我使用具有管理员权限的帐户 ssh 回到自己,以便关闭和重新启动。那么这是唯一的方法吗?
    • 这与授予 JVM 权限或使用无密码帐户使用 sudo/su 一样不安全。只要它有效;)
    • 您也可以尝试编辑 /etc/sudoers 文件并授予自己执行/sbin/shutdown 的权限,无需任何密码。
    • 不幸的是,运行程序的帐户可能没有正确的权限来执行关机。所以无论如何我必须使用另一个管理员帐户,对吧?
    • 是的,这是最简单的方法。
    猜你喜欢
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    相关资源
    最近更新 更多