如何禁用给定用户的某些系统调用?

如何禁用给定用户的某些系统调用?

我正在创建一个类似于键盘的 Web 应用程序,对于每个运行操作,我的应用程序都会将一个目录 ( /home/radeks/voidptr/private/chroot-root) 复制到/tmp/voidptr/[random-id]/chroot-root.此 chroot 目录有一个用户,用于编译并运行 Web 应用程序用户输入的代码。问题是我不希望用户关闭机器或使用套接字等。

我是否需要编写一个主管,或者我可以简单地为每个用户设置这些权限吗?

答案1

Chroot 仅限制文件系统访问。如果您拥有 root 权限,那么 chroot 只会带来不便,而不是安全限制。普通用户可以使用socket,但不能关闭机器。

有多种方法可以限制用户可以执行的操作:功能、AppArmor、SELinux 等等,但到目前为止最简单的方法是将 webapp 用户限制在虚拟机中。您将能够轻松限制网络连接和资源使用等内容。对于您的用例,轻量级 Linux-on-Linux 虚拟机技术似乎是最好的:类似开放VZ,用户模式Linux或者虚拟服务器

相关内容