创建仅具有执行C程序权限的用户

1010

我正在尝试构建在线代码编辑器。我的情况:通过Web服务器收到一个“ C”程序的请求-根用户创建文件,编译文件并将成功确认给用户。

我们正在nodejs后端使用。现在是运行程序的时候了-nodejs为我们提供了使用uid(不同于root的其他用户)生成此用户代码的选项。

我该如何创建一个没有ls,px之类的功能的用户,而只是运行上面步骤中编译的可执行文件即可。

该解决方案,我试图之一:的变更许可/usr/bin/bin/usr/sbin//sbin/usr/local/bin/usr/local/sbin700所以只有root用户可以运行所有这些命令的这用户只需运行简单的“C”程序。但是,该用户仍然可以选择查看/etc目录-所以基本上我需要一个所有目录都为700的用户。这是一个好主意吗?

另一种选择是批准。还没有尝试过这个。

朋友建议的第三个选择是chroot,但是人们说这不是出于安全措施。

有人可以指导我如何解决这个问题。

奥修斯

Chroot是执行此操作的更传统的方法,您可以使其正常运行,但是由于您是通过Web界面执行此操作的,因此它变得有些复杂:您必须防止竞争条件(多个用户使用相同的chroot环境) ,您必须为每个请求动态构建目录结构,以及可能无法想到的其他一些事情。

如果您使用的是Linux,则需要查看容器(lxc)或Docker项目https://docs.docker.com尤其是Docker平台,可以非常轻松地让您轻松完成您想做的事情:创建短期,轻量级的虚拟系统,该系统可用于运行完全入狱的进程,而不会影响外部(即您的Web服务器)资源。您可以下载要让程序运行的特定OS环境的基本docker映像(例如Fedora 12),在将用户的程序源导入到该环境中的同时告诉docker运行该环境,然后告诉docker运行编译器以及该环境中的结果文件。然后,您告诉docker销毁短暂环境。什么都不会落后,(几乎)没有安全风险。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建仅具有只读权限而不具有EXECUTE和WRITE权限的linux用户?

创建具有部分root权限的用户

创建仅具有访问特定文件夹权限的SSH用户

为什么新的默认目录具有用户可执行权限,而新文件仅具有用户读写权限?

如何创建具有root用户权限和更多权限的“ Gnome-Desktop-Item-Edit”程序的启动图标?

c ++,linux-程序创建的文件的mmap()权限被拒绝,创建的文件具有所有打开的权限

为什么我的Postgres用户对表具有执行权限?

如何为不同的用户C++创建具有读/写权限的unix套接字文件?

鹦鹉螺没有安装权限;仅当程序具有超级用户权限时,才识别网络摄像头和扫描仪

创建具有访问应用商店权限的新用户

如何创建具有ssh访问权限的新用户?

Terraform-具有程序访问权限的AWS IAM用户

创建仅具有写入权限而没有读取权限的samba共享

SQL Server-创建用户定义的表类型-创建用户没有执行权限?

为什么我不能仅具有执行权限才能执行脚本?

USB驱动器由用户自动安装,但仅具有root用户的写入权限

chmod:如何将执行权限仅递归地添加到已经具有执行权限的文件中

如何仅使用SSH权限创建用户

具有背景权限VS在应用程序中仅具有Android Q权限的前景服务中的位置

通过创建新用户,该用户是否对其自己的主目录具有读写权限?

如何检查用户是否具有用户级别通过javascript在特定实体上创建权限?

允许用户仅运行具有root权限/特权的特定二进制文件

Firebase存储映像URL仅具有读取权限的用户可以访问

Wagtail / Django:查询过滤器仅返回用户具有访问权限的页面?

如何添加仅具有访问特定文件夹权限的ssh用户?

Hybris UAC:具有创建员工的用户访问权限的员工无法创建员工

如何创建对所有文件具有只读访问权限的用户?(即没有写权限的root)

如何执行具有sudo权限但没有根上下文的程序?

如果目录仅对某些用户/组具有x(可执行)权限,那意味着什么?