我在使 SSH 公钥身份验证按我希望的方式工作时遇到问题,并且我不知道是否有可能使其工作。
我有几个网站托管在不同的 下/home/$USER
。所有 web 文件都在 下/home/$USER/www
。问题是,为了让 nginx 能够访问 web 文件(主要是 PHP 文件和静态文件), 的所有权/home/$USER
必须为nginx:nginx
。但现在如果任何用户想要使用他们的 SSH 密钥(在authorized_keys
下列入白名单/home/$USER/.ssh
)进行身份验证,他们无法这样做,因为他们的/home/$USER
所有者是,nginx:nginx
而不是$USER:$USER
。
有什么方法可以让它工作吗?也许值得一提的是,网站必须放在不同的/home/$USER
目录下,而不是放在 下/usr/share/nginx/html
。
我正在使用 CentOS 8。
答案1
您可以继续NGINX 和 PHP-FPM。我的权限应该是什么?。
为了获得可运行(且安全)的设置,PHP-FPM 池用户必须使用属于网站的相应用户名运行。
确定nginx:nginx
站点文件的所有权从来都不是一个好主意。
相反,文件由不同的网站用户拥有(每个网站不同)。为了让 NGINX 能够读取文件,您需要将nginx
用户添加到每个网站用户的组中:
usermod -a -G example nginx
然后nginx
用户就可以读取example
用户的网站文件(在其主目录下)。