如何管理在我的服务器上编辑相同代码的多个用户的权限?

如何管理在我的服务器上编辑相同代码的多个用户的权限?

我有一台服务器,几位不同的程序员将使用它来处理不同的网站。每位程序员都需要访问每个网站。

我想到两种“干净”的方法来做到这一点,但我宁愿避免使用它们......

  1. 每个网站都有自己的用户/组。网站将存储在 /home/username/www/ 中,我将使用 Apache 的 suEXEC 在用户/虚拟主机之间切换。

  2. 我在系统上创建一个用户/组,每个程序员都以此身份登录。然后可以将网站存储在 /var/www/website.com/ 中,Apache 将以该用户身份运行,以对文件具有读/写访问权限

第 1 点的明显安全优势是每个网站都是沙盒。如果一个网站受到攻击,其他网站应该是安全的。这种方法的缺点是每个程序员都需要记住多个用户名/密码。

第 2 点意味着每个程序员都有一个登录名(相同的登录名......)并且混乱更少(主机上的 50 个网站意味着 50 个新用户/组)

我的理想设置是给每个程序员一个自己的用户/组。这样他们就可以有自己的 ~ 文件夹来存储他们的东西,如果我需要撤销程序员的访问权限,我只需禁用他们的登录即可。这比必须更改每个网站/程序员帐户的密码要好得多。

我不能依赖版本控制系统的原因是它很少被使用。这个主机上的很多网站都会使用 Joomla/Wordpress/等。

因此,我基本上正在寻找一种干净且安全的方法,让多个程序员可以在一个主机上处理多个共享网站。您有什么建议?

答案1

允许多人编辑生产代码会造成很多麻烦。请使用版本控制并仅部署带标签的版本。

如何部署构建并不像跟踪更改和能够退出那么重要。

答案2

尽管我同意版本控制是一个很棒的选择,您可以通过执行以下操作来实现您的要求(再次特别注意有关版本控制列出的关注点)。

所以这是答案你的问题

创建两个用户并赋予他们相同的组 ID

 #groupadd -g 5000 programmers
 #useradd ren
 #useradd stimpy

编辑 /etc/passwd 文件并更改两个用户的 guid:

 ren:x:505:5000::/home/ren:/bin/bash
 stimpy:x:506:5000::/home/stimpy:/bin/bash

接下来,更改这些用户的 umask,以便他们为组程序员创建具有 rw 权限的所有文件

 #vi /home/ren/.bash_profile
 umask 002

现在,对每个用户执行 su 操作,可以看到他们都可以继续编辑相同的文件:

 #su - ren
 #vi /path/to/file.txt
 here's some content in the file

 #exit

 #su - stimpy
 #vi /path/to/file.txt
 append some more content

您会发现,当 ren 创建文件时,所有权为 ren:programmers,其权限为 rw-rw-r。这将允许 stimpy 编辑该文件。您还可以跟踪最初创建文件的方式(但无法跟踪编辑文件的人)。

相关内容