我不知道如何最好地问这个问题。 几年来,我发展到一个angular落,需要弄清楚一些事情。 到目前为止,我几乎可以肯定地没有遵循最佳实践,但是你去了。
我在我自己的Linux(Ubuntu)服务器上制作和托pipeDjango网站。 我用Bazaarpipe理他们的版本控制,并通过SSH + BZR上传。 他们都进入了一个名为/websites/富有想象力的父目录。 生产副本只是主BZR分支(不是出口)。 我不运行任何types的FTP服务器,只是SSH。
我的工作stream程是编辑网站的本地副本,进行更改。 因为它们都是绑定分支,所以它会自动将其提交到服务器,并有一个钩子,然后运行一个更新,从而决定是否需要重新加载Django站点。 我刚写了一些东西,所以他们为我工作。
所有网站的文件都属于我的用户帐户oli 。 目前所有的网站都在该帐户下运行 。
有时客户想访问他们的网站,这是公平的,但我不确定在目前的结构下是否可以这样做。 我想事情需要改变,以便让我实现以下目标:
我可以为客户创build一个新的用户帐户,以便他们可以login并使用他们的网站(以及他们的网站)。 我相信我的客户,但是我的其他客户不应该被强迫他们互相信任。
我仍然可以在所有网站上工作,就像我自己的帐户一样,理想情况下在一个地方,但如果在服务器上,他们根据用户分割,我会生存。
如果可能的话,强迫用户通过BZR,这样他们就不会把愚蠢的生产分支搞糊涂了,而这个分支不容易被回滚。 你知道这是如何工作的:如果我给客户端访问和“神秘”的东西停止工作,这是我的错,不pipe发生了什么。 我需要能够跟踪发生了什么,但是类似的客户端需要能够在没有我的交互的情况下进行更改(关守VCS模型不适用于我)。
所以假设我可以做任何事情来改变我目前的设置, 这样做的最好方法是什么?
我目前的想法是:
安装一个简单的FTP(等)服务器作为oli运行,以保留任何权限,并试图强制他们使用BZR,否则需要同步更新。
如果你认为这是可行的,是否有一个FTP的安全等同于系统认为是一个用户,但类似的东西,我可以任意限制某些目录(例如用户客户端 – 一个只能查看网站的子目录)。
完全摇动,使用不同的SSHlogin,保持客户的$HOME dirs网站。 如果得到您的投票,我最好的办法是阻止他们做任何事情,但访问他们的文件? 有没有一个很好的组合来限制一个chroot机制的ForceCommand internal-sftp ?
但是,我从坏习惯中学会了坏习惯。 你会怎么做?
我会改变每个目录的组所有者为每个相应的客户端组(并设置目录上的粘滞位,所以新的文件inheritancegid),并给他们一个只有bzr + ssh访问帐户,然后让他们使用bzr检查他们的网站,就像你一样工作。 显然,将自己添加到所有的客户群。