【问题标题】:Protect website files on linux hosting server保护 linux 托管服务器上的网站文件
【发布时间】:2016-01-20 13:58:51
【问题描述】:

我有一个托管在 linux 服务器上的网站,我的根目录是 (/home/MyAccountName)。 我的网站允许用户上传 c++/c 代码,编译并执行。

问题是:

被执行用户的程序将拥有所有所有者权限(读-写-执行)。

所以如果用户的代码是这样的:

system('cd / && rm -r MyAccountName');

执行时,我所有的网站文件都会从服务器中删除。

问题是:

如何保护我的网站文件免受用户执行的程序的影响,并赋予它有限的权限。

注意

我在 linux 服务器上只有一个用户(所有者),我无法在服务器中创建新用户。

【问题讨论】:

  • 标题看不懂。
  • 一般警告:让用户在您的服务器上执行任意代码是一个非常糟糕的主意,除非您确切知道自己在做什么,否则不应这样做。
  • 这是关于服务器管理,而不是编程,因此在堆栈溢出时离题了。

标签: c linux permissions web hosting


【解决方案1】:

标准的解决方案是在一些chroot 甚至容器中执行他们的代码。您可以修改您的网站以创建一个临时目录,对其进行 chroot 并执行用户代码,因此用户将无法与您的文件或系统的其他部分进行交互。如果用户代码可能与某些共享库链接,您可以授予只读访问权限,可以使用mount --bind 完成,以使您的主文件系统的某些部分在 chroot 中可用。

【讨论】:

    【解决方案2】:

    我觉得你的需求类似于实现一个在线评委系统,你可以在 GitHub 上搜索“在线评委”。示例judge

    也许你可以研究一下Sandbox,这是一种用于分离正在运行的程序的安全机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-22
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多