标签: c linux permissions web hosting
问题是:
已执行用户的程序将拥有所有所有者权限(读写 - 执行)。
所以,如果用户的代码如下:
system('cd / && rm -r MyAccountName');
执行时,我的所有网站文件都将从服务器中删除。
如何保护我的网站文件免受用户执行的程序的侵害,并赋予其有限的权限。
注意
我在linux服务器(所有者)上只有一个用户,我无法在服务器中创建新用户。
答案 0 :(得分:1)
standrard解决方案是在一些chroot甚至容器中执行他们的代码。您可以修改您的网站以创建临时目录,chroot到它并执行用户代码,这样用户就无法与您的文件或系统的其他部分进行交互。如果用户代码可能与某些共享库链接,则可以提供只读访问权限,可以使用mount --bind完成,以使主文件系统的某些部分在chroot内可用。
chroot
mount --bind
答案 1 :(得分:0)
我认为您的需求类似于实施在线评判系统,您可以搜索"在线评判"在GitHub上。示例judge
也许你可以研究Sandbox这是一种分离正在运行的程序的安全机制。