linux - Ubuntu:允许非 root 用户创建和模拟用户

标签 linux ubuntu root

我想编写一个服务器,代表不受信任的各方接收和执行代码。

为了使其更安全,我希望代码以专为运行此代码而创建然后删除的用户身份运行。

如何授予非根用户创建、模拟和删除其他用户的权限?

最佳答案

唯一可以做到这一点的方法是使用 setuid root 代理程序(即 chown root my-proxy-process; chmod 47nn my-proxy-process。setuid 代理程序负责处理安全问题, setuid'ing 到命名用户等。

然而,与此相关的安全问题应该相当清楚。限制它的一种方法是确保您的非特权进程与名称组中的用户一起运行。然后使用 root:myprivategroup chown 代理命令并将其更改为 4710,这样只有属于 myprivategroup 成员的用户才能执行它。

这可能是最安全的。最主要的是确保代理过程良好、安全并被锁定,以便只有相关用户才能通过组成员身份运行它。

如果您知道可以将任何其他限制应用于用户提供的进程,则代理程序可以验证该进程是否符合这些规则。请注意,虽然这可能是一个权宜之计,但它不会超出技术领域,有人可以制作一个通过测试的“坏”程序。

为了增加安全性(推荐),使用 mark4o 提到的沙箱或 chroot jail。

关于linux - Ubuntu:允许非 root 用户创建和模拟用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1118778/

相关文章:

android - 如何检测设备是否已在应用程序中 Root ?

ios - iOS App 的根权限

linux - shell 脚本 : How to extract fields in variable positions by name from a string

arrays - 如何获取远程服务器主机名作为变量并使用它?

ruby - Mettre des accents français dans des fichiers - 将法语口音放入 HTML 文件 (RoR)

linux - exec shell 命令的选项 -l

ruby-on-rails - Ubuntu 未检测到 Rails 安装

php - 让我们在 LNMP Ubuntu 16.04 上使用 Nginx 为 Laravel 应用程序加密

linux - nginx 不监听 80 端口

ios - 返回IOS Root View