0

我已经根据这篇文章 https://help.ubuntu.com/community/ApacheMySQLPHP设置了 apache, 并在其中创建了一个新站点配置/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 创建的任何后续文件都将不可读。

由于我在gapton通过 FTP 连接时登录了唯一的帐户,那么任何新创建的文件都应该归gapton对吗?当 apache 尝试访问文件/文件夹位置时会发生什么,它通过什么凭据访问它?

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

谢谢。

4

1 回答 1

1

我发现了问题。

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

在当前版本中,该默认值已更改为 077。此掩码对除所有者以外的所有人进行4读写2和执行。1

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

于 2013-06-21T15:13:35.180 回答