如何让用户在我的服务器上运行任意源代码 我想通过让用户上传C++、Python、Lisp、Scala等文件到我的Linux机器上自动测试我的用户源代码文件,在那里,服务将在文件夹中找到它们,然后编译/运行它们以验证它们是正确的。这个服务器不包含任何关于我的用户的重要信息,因此没有数据库或任何可供黑客攻击的东西。但我不是安全专家,所以我仍然担心用户会以某种方式找到一种使用root权限运行任意命令的方法(基本上我不知道会出现什么问题)。有安全的方法吗

如何让用户在我的服务器上运行任意源代码 我想通过让用户上传C++、Python、Lisp、Scala等文件到我的Linux机器上自动测试我的用户源代码文件,在那里,服务将在文件夹中找到它们,然后编译/运行它们以验证它们是正确的。这个服务器不包含任何关于我的用户的重要信息,因此没有数据库或任何可供黑客攻击的东西。但我不是安全专家,所以我仍然担心用户会以某种方式找到一种使用root权限运行任意命令的方法(基本上我不知道会出现什么问题)。有安全的方法吗,linux,security,Linux,Security,在任何情况下都不应允许用户以root权限在服务器上运行代码。用户可以运行rm–rf/,然后删除服务器上的所有内容 我建议您创建一个权限非常有限的新本地用户/组,例如,只能访问一个文件夹。因此,当您在服务器上运行代码时,您在该文件夹中运行代码,用户无法访问其他任何内容。代码完成后,删除文件夹的内容。你也应该对此进行有力的测试,以检查他们是否真的不能破坏/操纵任何东西 如果你在FreeBSD上运行,你也可以看看Jails,这是一种虚拟化的方式,并将用户/程序限制在那个沙箱中。阅读有关Linux中命令

在任何情况下都不应允许用户以root权限在服务器上运行代码。用户可以运行
rm–rf/
,然后删除服务器上的所有内容

我建议您创建一个权限非常有限的新本地用户/组,例如,只能访问一个文件夹。因此,当您在服务器上运行代码时,您在该文件夹中运行代码,用户无法访问其他任何内容。代码完成后,删除文件夹的内容。你也应该对此进行有力的测试,以检查他们是否真的不能破坏/操纵任何东西

如果你在FreeBSD上运行,你也可以看看Jails,这是一种虚拟化的方式,并将用户/程序限制在那个沙箱中。

阅读有关Linux中命令的更多信息


通过这种方式,您可以为每个正在运行的用户程序提供单独的隔离容器。

他们会这样做。如果您赋予某人编译权限,则升级到root非常困难。您说服务器对您并不重要,但如果有人从该服务器向您发送电子邮件,或更改某些脚本,以获取您的家庭计算机或您使用的其他服务器上的某些信息,该怎么办


至少你需要把自己和他们分开。我建议使用linux容器,它们现在很流行。但是要小心,这类服务总是很危险的,不管你如何保护自己。

saas版本在你想要做一些沙箱/虚拟化,但我不知道如何做。我认为在这里的人们可能更能回答这个问题