我运行一个clearOS服务器在我的本地networking(小公司的10个开发人员)我们使用它作为一个开发服务器来testing我们的工作,并在testing过程中显示给客户端每个开发人员有一个唯一的用户名和密码来访问ftp / http / SMB。 问题是当一个开发人员运行一个非安全的代码(让我们假设它是一个PHP代码)就像运行一个无限循环! 服务器完全崩溃,即时通讯无法识别谁是错误的开发者! 那怎么能解决? 提前致谢
我的服务器的信息
已安装的应用
用户:
你已经说明了你的主要问题
当一个开发人员运行一个非安全的代码(让我们假设它是一个PHP代码)就像运行一个无限循环! 服务器完全崩溃,即时通讯无法识别谁是错误的开发人员!
由于开发代码可能总是崩溃或挂起,所以您正在有效地处理两个不同的问题:
如果你解决第二个问题,你仍然需要解决第一个问题。 但是如果你先解决了,那么你就不用再解决第二个问题了,所以我把重点放在解决第一个问题上(也就是说,解决问题而不去面对坏事的人总是更容易,更less的对抗)。
将用户操作彼此隔离时,您有三条主要path可供select:
ulimitbuild议,我只想补充说,你必须确保你的应用程序也使用这些用户(而不是每个服务的通用守护进程用户),并且他们不想用其他用户帐户启动进程。 由于这个缺点,现在很less使用这种方法,除了像没有持续交付基础架构的构build脚本之类的简单事情。 当然,组合总是可能的,因为这些方法在不同的层面上工作。 例如,您可以使用容器,以便每个人都有自己的Web服务器,但让所有用户使用相同的数据库来节省资源(数据库访问速度快于多个不同的数据库),受限于数据库配额。
正如你所看到的,可能性是很多的,而且每一个都是相当大的努力来实现的,所以你需要缩小它的范围:
作为一项预防措施,如果您想为用户设置特定的限制,您应该查看ulimits。 您可以设置过程/ CPU /内存限制。
请参考这个链接
另一种方法是通过一个外部监测工具(最常见的例子是nagios / nrpe)来监测系统的资源使用情况,如果超过了资源阈值,它可以提醒你。