我有一个简单的问题,但是,我很难理解如何以安全的方式做到这一点,
我有一个在 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
有多种推荐的方法来解决此问题。
/var/www/html
为通过 WinSCP/SFTP 登录的用户 添加写权限。这可以通过多种方式完成。- 将组更改为运行用户(并授予写访问权限)
注意:这是有效的,因为始终为用户创建一个 unix 组。sudo chgrp <user> /var/www/html sudo chmod g+w -R /var/www/html
- 创建一个包含 apache 和用户的新 unix 组(并授予写访问权限)
sudo groupadd <groupname> sudo chgrp <groupname> /var/www/html sudo chmod g+w -R /var/www/html
- 将组更改为运行用户(并授予写访问权限)
- 通过 WinSCP/SFTP 以用户登录的方式运行 apache 服务。(关联)
- 将 apache 文档根目录从
/var/www/html
(只需从 /var/www/html 创建符号链接到部署用户拥有的目录或通过更新 apache 配置)移动