我有一个正在进入 Web 开发的朋友,他目前正在 php/apache 设置上进行开发。
我使用 nginx 和任意服务器语言,这是我的(ubuntu)服务器上当前运行的语言。
我想知道如何设置一个用户帐户和权限,允许他登录并安装 apache、一些 php 模块和他的网站,而不危及我的安全。
答案1
如果您希望他进行软件安装和管理,您将需要授予他 root 访问权限并信任他做所有事情。
如果您想处理运行多用户服务器所需的管理的复杂性,您可以这样做。虽然他总是会要求你修改各种东西。即使您克服了正确配置多用户服务器的复杂性,它也会很快让人厌倦。
您想要实现的目标与激发 cPanel 的目标相同。
您应该考虑研究控制面板,例如 Webmin、cPanel、Plesk、Ensim、DirectAdmin 等,而不是从头开始执行所有这些操作。
答案2
这听起来可能适合 Docker。
- 选项1:为他构建一个可以用作沙箱的图像。
- 选项2:在你的主机操作系统上给他一个标准用户帐户,并将他添加到 docker 组中。
如果你真的关心安全性,第三种选择是让他完全控制(root 访问)像 Raspberry Pi 之类的东西。 Pi 可以在带 ssh 访问的无头模式下使用,这对于 Web 开发来说应该足够了。dd
使用/7zip对 SD 卡进行备份gzip
,如果出现严重错误,您有办法恢复到良好状态。
答案3
第一个明显的步骤:审核什么是世界可写的,什么是机密和世界可读的。
其次,我相信您使用命令创建用户adduser
。 (这只适用于下面的选项 1 和 2。)
第三,安装apache之类的有几种选择。
- 您可以在系统范围内安装它并将其配置到非标准端口。您可能还需要将其配置为不同的用户 ID,因为两个网络服务器的标准安装可能使用相同的用户。
- 你可以让他进行 apache 的源安装以及他需要的其他任何东西。这对他来说明显更痛苦,但对你来说更容易。
- 您可以安装 xen (或类似的东西),并为他运行一个虚拟机,而不是为他创建一个普通用户。在此虚拟机上,您可以授予他 root 访问权限。他将被限制在虚拟机中。在管理VM时,你可以限制他的内存使用和CPU使用。
- 使用 Linux 命名空间,可以创建类似于虚拟机的东西,但在同一内核中运行。我还没有看到一个好的包,但它们可能存在。这也可以让你给他 root 访问权限。
你的选择可能取决于他想要做多少管理工作,以及你想要做多少管理工作。
另一个可用的选择:让他在托管服务上获得虚拟机。 亚马逊比如会给他一个免费的小型虚拟机一年。