我正在设置具有 ftp 访问权限的 vhost。
我有一个 FTP 用户ftpuser
,它被 chrooted 到它的主目录,然后我设置了 vhost 使其指向/home/ftpuser/
。
我已将 ftpuser 添加到www-data
组,我也通过运行确保groups ftpuser
返回ftpuser: ftpuser www-data
。
然后我上传了一个 wordpress 网站,chown -R ftpuser:www-data
在整个源目录上运行,将 .php 文件的文件权限设置为 664,将目录的文件权限设置为 775。不幸的是,这些设置不起作用,事实上 Apache 对那些文件没有权限。只有当我将权限设置为 666(对于文件)和 777(对于目录)时,它才获得执行和写入权限。似乎 www-data 组尚未被授予任何权限(事实上它没有使用组权限)。
我该如何修复?这里出了什么问题?我确信 apache 使用 www-data,因为我查看过它的配置并且还运行了ps aux | grep apache
。
PSftpuser
将通过 vsftpd 访问,我是否需要编辑一些内容以确保新文件具有 www-data 组?(umask 为 022)
答案1
出于安全原因,如今大多数 Linux 发行版都将主目录设为 700。您需要将其至少更改为 710
chmod 710 /home/ftpuser
这样,apache 就可以进入 /home/ftpuser 并从您的权限中读取 php 文件