Ubuntu Web 服务器上网页的目录/文件权限

Ubuntu Web 服务器上网页的目录/文件权限

我正在工作中设置一个 Web 服务器,使用 Ubuntu 14.04 和 apache。它托管 3 个网页(将来可能会更多),由不同的开发人员管理。我对如何设置公共 Web 目录和内容权限感到担忧。开发人员是承包商,但网页归公司所有,因此它们可能会发生变化,当这种情况发生时,我不想更改所有文件权限

目前,我有以下方案:每个开发人员都使用其个人 ID 登录。每个网页都归一个应用程序 ID 所有(例如,/var/www/app1 归 app1user 所有),并且已禁用 ssh 登录。(为了保持责任制)开发人员可以使用 ssh 访问服务器,并使用 sftp 上传文件。但随后他们必须“sudo su - appXuser”并将文件移动到网页目录。

开发人员争辩说他们无法使用 winscp 直接上传到 Web 应用程序。有没有其他更好的方案?

抱歉,如果这是重复的,我发现了相关的问题,但没有与此完全相同的问题。

答案1

您可以设置 vsFTPd 服务器。然后您可以将用户链接到多个文件夹,并将多个用户链接到同一个文件夹。这样多个开发人员就可以在同一个应用程序上工作。您不应该使用 FTP,而应该使用 sftp 或 ftps,因为它更安全。

使用此配置,用户可以直接上传到服务器。

另一个选择是使用 Git。让开发人员将他们的工作提交给 Git,然后您通过 SSH 更新生产站点。在这种情况下,开发人员不需要使用 FTP。

答案2

取决于要求是什么。

为了进行可重复的部署,您可以将 sudo 规则限制到某些部署脚本。开发人员以某种方式暂存他们的更改。执行部署的人然后调用 sudo -u app1user deploy。该脚本传输文件、更新数据库、向人们发送电子邮件、在源代码管理中标记某些内容、进行备份等等。

或者,授予组访问权限。app1grp 可以写入 app1,并且该组中有多个用户。然后,您可以允许个人用户直接进行 scp 传输。如果服务器进程可以读取文件,那么个人拥有文件就不是什么大问题。

相关内容