我想通过让我们的用户的源代码文件上传C++,python,lisp,scala等文件到我的linux机器上来自动化测试,他们在一个文件夹中,然后编译/运行它们来验证它们是否正确。此服务器不包含任何有关我的用户的重要信息,因此没有任何数据库或任何其他人可以进行破解。但我并不是安全专家,所以我仍然担心用户以某种方式寻找以root权限运行任意命令的方式(基本上我不知道哪些事情会出错)。有没有安全的方法来做到这一点?如何让用户在我的服务器上运行任意源代码
0
A
回答
1
他们会。如果你赋予某人编译的权力,那么很难而不是升级到根目录。你说那个服务器对你来说并不重要,但如果有人向你发送一封来自该服务器的电子邮件,或者改变了一些脚本,在你的家用机器或者你使用的另一台服务器上获得了一些信息呢?
至少你需要强烈地将你与他们分开。我建议linux容器,https://linuxcontainers.org/这些日子他们是时髦的。但要小心,无论你保护多少,这都是危险的服务。
0
在任何情况下,您都不应允许用户使用root权限在您的服务器上运行代码。然后用户可以运行rm –rf /
,它会删除服务器上的所有内容。
我建议您创建一个新的本地用户/组,其权限非常有限,例如只能访问一个文件夹。因此,当您在服务器上运行代码时,您将在该文件夹中运行该代码,并且用户无法访问其他任何内容。代码完成后,您将删除该文件夹的内容。你还应该大力测试它们是否确实无法销毁/操纵任何东西。
如果你在FreeBSD上运行,你也可以看看Jail,这是一种虚拟化方式,并将用户/程序限制在该沙箱中。
1
在Linux中阅读有关chroot命令的更多信息。
通过这种方式,您可以为每个正在运行的用户程序提供单独的独立容器。
相关问题
- 1. 如何安全地让用户运行任意的Ruby代码?
- 2. 如何让Sonar Runner在源服务器上运行时运行?
- 3. 在服务器上运行Python代码
- 4. 如何让Django在我的Web服务器上运行?
- 5. 如何服务器代码运行MVC2
- 6. 如何让我的docker centos sshd无密码服务器运行?
- 7. 如何轻松在Linux服务器上运行C#代码?
- 8. 服务器上的C++代码,在客户端机器上运行
- 9. 如何让我的代码,在蟒蛇服务器
- 10. Java:如何从浏览器调用在服务器上运行的代码?
- 11. 无法让散景服务器在服务器上运行
- 12. 如何使服务器和客户端在任何机器上运行
- 13. 在Web服务器上执行用户提供的ruby代码
- 14. 适用于iOS的任何webdav或ftp服务器源代码?
- 15. 我有xampp mysql服务器运行,我该如何运行代码?
- 16. 如何在特定用户帐户下运行构建服务器任务?
- 17. 让用户指定服务在哪个帐户上运行
- 18. 如何让服务运行定时器?
- 19. 代码在IDE上运行,但不在服务器上
- 20. 如何在我的任务代码运行之前从我的自定义任务*中调用其他任务?
- 21. 码头服务器运行php代码
- 22. 如何从Eclipse运行任意服务器软件?
- 23. 如何让进程在远程Windows服务器上运行
- 24. 我该如何让用户从服务器上下载文件
- 25. Subversion服务器源代码
- 26. 代码在dev PC上运行,但不在服务器上运行
- 27. 如何在服务器上运行JavaScript
- 28. 如何让Django分类广告在我的本地服务器上运行
- 29. 如何让用户退出长时间运行的VBA任务?
- 30. 在单独的服务器上运行php代码
saas version at http://ideone.com/ – tom 2014-10-28 22:17:31
你会想做某种沙箱/虚拟化,但我不知道该怎么做。我认为http://serverfault.com的人可能会更好地回答 – 2014-10-28 22:18:24
或http://security.stackexchange.com/ – ErlVolton 2014-10-28 22:18:43