当前位置: 首页>>技术教程>>正文


vsFTPd在Ubuntu上的默认上传文件权限不起作用

, , ,

问题描述

我有一台运行Ubuntu 12.10 x64的服务器,以及最新版本的vsFTPd。

我的用户example.com的主文件夹设置在/var/www/example.com上,

我在其中创建了public_html文件夹,并为其赋予了777权限,并删除了家庭用户文件夹的写入权限。一切正常,但:

我通过FTP(使用SmartFTP)上传的每个文件的chmod均为0。

我的vsftpd.conf只有一行相关:

local_umask=022.

我尝试更改为:

file_open_mode=777
local_umask=002

因此,我的文件在上载后将立即获得775

但是只有我上传的文件夹获得了775权限。

我上传的文件得到1411 permissions

有人可以帮我解决这个问题吗?

最佳思路

我最终使用

file_open_mode=0777
local_umask=022

在vsftpd.conf上。问题在于,FTP用户和www-data用户都需要写权限,因此我不得不将www-data和ftpuser加入www-data用户组,然后CHMOD -R 775 /var /www上的所有文件-使用775 CHMOD,即组将具有读取,写入和执行的权限。现在,它可以完美运行。

次佳思路

得到了我的答案:

由于www-data是负责Web服务器的用户,而您的普通用户是ftp服务器的负责人,因此您首先需要使他们成为同一组的成员:www-data组。

创建自定义用户:

useradd –d /var/www/asasd.com -g www-data -m yourusername这样,主目录将为/var/www/asasd.com,而您的用户将位于www-data组中。

之后,通过键入passwd更改用户密码。

然后,您需要在yourusername主文件夹中创建public_html文件夹,因为FTP不能在主文件夹的根目录中写入,所以您必须创建一个子文件夹。

删除yourusername文件夹chmod a-w /var/www/asasd.com的写入权限

然后,为子文件夹应用新的权限:chmod -R 775 /var/www/asasd.com/public_html(请注意,您必须使用775 chmod,因为您需要组写权限,而不是用户写权限,因为您希望整个组(ftp和www-data)都可以写),然后拥有该文件夹用于www-data chown -R www-data:www-data /var/www/asasd.com/public_html

这样,您必须能够使用FTP并使Web服务器正常工作。

祝好运!

有趣的是,此信息很难找到。人们不再共享知识了吗?

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8289.html,未经允许,请勿转载。