Filezilla 无法在 Ubuntu 上通过 ftp 上传文件:533 传输失败

Filezilla 无法在 Ubuntu 上通过 ftp 上传文件:533 传输失败

我在 Ubuntu 上有 Laravel 项目。项目位于/var/www/html/myproj。我在 Windows 上有本地项目,经过一些更改后,我想将 MyController.php 上传到 Ubuntu。我从 Filezilla 收到消息:File couldn't be transferred 在 Ubuntu 上,文件位于:

user1@bpl:/var/www/html/myproj/app/Http/Controllers/Admin$ ls -al
total 76
drwxr-xr-x 2 www-data www-data  4096 Mar 13 12:26 .
drwxrwxr-x 4 www-data www-data  4096 Mar 14 21:21 ..
-rw-r--r-- 1 www-data www-data  1170 Mar 13 12:26 AuthController.php

为了上传 I 用户ftpuser1,该用户被添加到 www-data 组:

user1@bpl:/var/www/html/myproj$ getent group www-data
www-data:x:33:user1,ftpuser1

的主目录ftpuser1是:

user1@bpl:/var/www/html/myproj$ eval echo ~ftpuser1
/var/www/html/

vsftpd 可以工作,ftp 守护进程没有问题,因为通常我可以通过上传文件,但是我在将文件上传到项目目录中Filezilla时遇到了问题LaravelAdmin

user1@bpl:/var/www/html/myproj$ systemctl status vsftpd
● vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: e
   Active: active (running) since Thu 2021-03-11 18:23:37 UTC; 3 days ago
 Main PID: 1073 (vsftpd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/vsftpd.service
           └─1073 /usr/sbin/vsftpd /etc/vsftpd.conf

这是来自服务器的 Filezilla 的响应:

Command:    PASV
Response:   227 Entering Passive Mode (185,163,47,161,39,70).
Command:    STOR AuthController.php
Response:   553 Could not create file.
Error:  Critical file transfer error
Status: Retrieving directory listing of "/myproj/app/Http/Controllers/Admin"...

在此网站上,我找到了有关应设置 Laravel 文件权限的文章:Ubuntu 上的 Laravel 文件权限

并且描述文件权限应该是 644,与我的相同:

然后将所有目录设置为 755,将文件设置为 644...设置文件权限

sudo find /path/to/your/laravel/root/directory -type f -exec chmod 644 {} \;

设置目录权限

sudo find /path/to/your/laravel/root/directory -type d -exec chmod 755 {} \;

但此配置不允许使用 Filezilla 和 vsftpd 上传文件

答案1

更改上传目录的权限

chmod 664 /var/www/myproject

答案2

我检查了一下,发现我的 ftp 主目录的递归目录属于 root 所有者,所以只需更改权限即可。

$sudo chown -R ftp1:ftp1 /home/ftp1
$sudo chmod -R 777 /home/ftp1

相关内容