【问题标题】:Preventing Java from creating new processes阻止 Java 创建新进程
【发布时间】:2012-02-23 09:55:11
【问题描述】:

我正在设置一个小服务,以允许人们在没有大量使用的备用盒子上运行临时的 Minecraft 服务器。

将启动 Minecraft 服务器的 .jar 将不可编辑,因为他们无法上传新的 .jar 并在其位置运行。但是,.jar 将是 Minecraft 服务器的 Bukkit Mod/Wrapper,它允许加载 .jar 形式的插件。是什么阻止了人们创建自己的插件并使用它来生成更多服务器?

如何防止有人使用服务器插件创建另一个服务器进程?我已经计划这样做,以便每台服务器都将在其自己的用户帐户下运行,该用户帐户无法访问。

【问题讨论】:

  • 查看ulimit,它可以让您限制用户可用的资源。此外,Java 安全模型应该允许您限制 Java 程序可以执行的操作(例如,默认情况下 Java 小程序无法访问文件系统),尽管我自己没有使用过。

标签: java bash minecraft


【解决方案1】:

我不熟悉 Minecraft 代码库。

但是,您应该考虑使用 SecurityManager 运行代码。这将使您能够限制许多操作(例如能够执行新进程)。

正确完成后,您应该能够完全锁定加载的 .jar 文件。 Minecraft 服务器可能已经为您执行此操作,想要限制可下载模块的活动是一件相当明显的事情。

【讨论】:

    【解决方案2】:

    在 linux 中有一个名为 /etc/security/limits.conf 的文件。

    阅读:http://linux.die.net/man/5/limits.conf

    nproc 将限制用户/域的进程数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 2020-04-04
      • 2020-12-10
      • 1970-01-01
      • 2016-10-31
      • 2012-12-20
      • 2020-05-09
      相关资源
      最近更新 更多