Centos - 部署 Web 应用程序 - 使用非 Apache 用户帐户和 SFTP/WinSCP 的最佳方法是什么

Centos - 部署 Web 应用程序 - 使用非 Apache 用户帐户和 SFTP/WinSCP 的最佳方法是什么

我有一个简单的问题,但是,我很难理解如何以安全的方式做到这一点,

我有一个在 Linux(Centos7)上运行的基于 PHP 的 Web 应用程序,我在 Linux 服务器上具有具有 Sudo 权限的“用户”访问权限。

Web 服务器 (Apache) 以“apache”用户和“apache”组的身份运行,

问题是当我尝试使用 WinSCP 部署应用程序时,出现权限被拒绝错误,解决这个问题的唯一方法是

usermod -g apache myusername
chmod 775 /var/www/html

我不想给整个 web 文件夹赋予 775,我认为这是一个很大的安全问题,存档此类任务最安全的方法是什么?

我如何使用 Winscp 以我的用户帐户(但作为 apache 用户)部署我的应用程序?或者对被认为是安全的常见行业实践有任何其他建议?

答案1

有多种推荐的方法来解决此问题。

  1. /var/www/html为通过 WinSCP/SFTP 登录的用户 添加写权限。这可以通过多种方式完成。
    • 将组更改为运行用户(并授予写访问权限)
      sudo chgrp <user> /var/www/html
      sudo chmod g+w -R /var/www/html
      
      注意:这是有效的,因为始终为用户创建一个 unix 组。
    • 创建一个包含 apache 和用户的新 unix 组(并授予写访问权限)
      sudo groupadd <groupname>
      sudo chgrp <groupname> /var/www/html
      sudo chmod g+w -R /var/www/html
      
  2. 通过 WinSCP/SFTP 以用户登录的方式运行 apache 服务。(关联
  3. 将 apache 文档根目录从/var/www/html(只需从 /var/www/html 创建符号链接到部署用户拥有的目录或通过更新 apache 配置)移动

相关内容