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


14

我有一台运行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

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


您必须授予FTP用户权限。
Gex 2014年

Answers:


11

我最终使用

file_open_mode=0777
local_umask=022

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


1
不要忘记重启FTP服务器:sudo service vsftpd restart
Nahid

7

得到了我的答案:

由于www数据是负责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服务器正常工作。

祝好运!

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


“首先需要使它们成为同一组的成员:www-data组”如何将我的ftp用户放入www-data组?
黑色

做得完美。感谢@lucasmx
Enrique Becerra

0

我也有问题,例如通过ftp上传文件时文件权限被更改。这是通过更改我的一行来解决的vsftpd.conf

local_umask=val(like 022,007,etc.,)


关心改进和开放一点吗?为什么这比以前的替代方法更好,它的实际作用是什么,因为这种语法在手册页中根本没有描述:local_umask必须是单个值,并且必须0作为八进制值的前缀。
Esa Jokinen

-4

您需要更改该文件的所有权:

chown root:root /home/username
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.