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

luc*_*smx 16 ubuntu ftp chmod vsftpd

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

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

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

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

vsftpd.conf只有一行相关:

local_umask=022.
Run Code Online (Sandbox Code Playgroud)

我尝试更改为:

file_open_mode=777
local_umask=002
Run Code Online (Sandbox Code Playgroud)

所以我的文件会775在上传后立即得到。

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

我上传的文件得到 1411 permissions

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

luc*_*smx 14

我最终使用

file_open_mode=0777
local_umask=022
Run Code Online (Sandbox Code Playgroud)

在 vsftpd.conf 上。问题是 FTP 用户和 www-data 用户都需要写入权限,所以我必须将 www-data 和 ftpuser 加入 www-data 用户组,并且 CHMOD -R 775 /var/www 上的所有文件 - 这样,使用 775 CHMOD,该组将具有读取、写入和执行的权限。现在它的工作完美。

  • 不要忘记重启FTP服务器:sudo service vsftpd restart (2认同)

luc*_*smx 8

得到了我的答案:

由于 www-data 是负责 web 服务器的用户,而您的普通用户负责 ftp 服务器,因此您首先需要将它们都设为同一组的成员:www-data 组。

创建自定义用户:

useradd –d /var/www/asasd.com -g www-data -m yourusername 这样主目录将是/var/www/asasd.com并且您的用户将在www-data组中。

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

然后,您需要在您的用户名主文件夹中创建一个public_html文件夹,因为 FTP 将无法写入您的主文件夹的根目录,您必须创建一个子文件夹。

删除您的用户名文件夹的 写入权限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 服务器正常工作。

祝你好运!

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