Apache和vsftp文件权限

时间:2013-06-20 09:46:10

标签: php apache2

我根据这篇文章设置了apache https://help.ubuntu.com/community/ApacheMySQLPHP 我在/etc/apache2/sites-available/mysite创建了一个新的网站配置 并将文档根目录更改为:

DocumentRoot /home/gapton/public_html
<Dictory />
..
..
</Directory>
<Directory /home/gapton/public_html/>
...
...
...
...
</Directory>

和我sudo a2dissite default && sudo a2ensite mysite禁用并启用它们,重新启动apache2并且工作正常。

然后我设置vsftpd并将vsftpd.conf文件配置为:

local_enable=YES
write_enable=YES

通过Notepad ++与用户'gapton'连接,我在test.php下创建了一个名为home/gapton/public_html的文件。它似乎不会被Apache读取。我做了sudo chmod -R 755 ~/public_html,它会加载好。

但是,通过vsftpd创建的任何后续文件都不可读。

由于我在通过FTP连接时已登录到唯一帐户gapton,因此任何新创建的文件都应归gapton所有?当apache尝试访问文件/文件夹位置时,会发生什么凭据?

如何配置它以便apache可以读取gapton创建的所有文件? (另外,这是否可取?)

感谢。

1 个答案:

答案 0 :(得分:1)

我发现了问题。

版本的vsftpd中,写入文件时应用的umask默认为022。

在当前版本中,此默认值已更改为077.此掩码读取4写入2并为除所有者以外的所有人执行1

vsftpd.conf文件中的umask值更改回022已解决了我的问题。希望这有助于vsftpd的未来用户面临同样的问题。