带有 mariadb(mysql)后端的 Proftpd 无法上传

带有 mariadb(mysql)后端的 Proftpd 无法上传

我已经使用 mariadb (mysql) 后端运行 proftpd。

我已经midas在 ftp 数据库中创建了一个用户。

首次登录时,proftpd(以用户proftpd和组的身份运行proftpd)会为该用户创建一个位于的主目录/var/ftp/

这工作正常,我看到正在创建的目录:

[root@vps ftp]# ls -la
共 24
drwxr-xr-x.5 proftpd proftpd 4096 10 七月 19:19。
drwxr-xr-x.22 root root 4096 10 七月 12:56 ..
drwxrwxr-x. 2 proftpd proftpd 4096 10 七月 19:34 midas

在客户端,发出put命令会返回550: Permission denied

ftp> 放入 ~/website.zip remotewebsite.zip
本地:/home/midas/website.zip 远程:remotewebsite.zip
200 PORT 命令成功
550 remotewebsite.zip:权限被拒绝

为了验证我是否在正确的目录中,以及 proftpd 是否具有对该文件夹的写权限,我创建了一个空文件somefile

[proftpd@vps midas]$ touch somefile --> 没有返回任何错误并且显示在我的用户midas客户端。

ftp> ls
200 PORT 命令成功
150 打开文件列表的 ASCII 模式数据连接
-rw-rw-r-- 1 1001 1001 0 7月 10 17:48 somefile
226 传输完成

我确信我在这里缺少一些非常基本的理解,但我必须承认这是我第一次与虚拟用户合作。任何指向解决方案的指示都将非常感激。

答案1

权限集末尾的点让我认为您已启用 SELinux 安全上下文:

drwxrwxr-x.  2 proftpd proftpd 4096 10 jul 19:34 midas
          ^--dot

禁用 SELinux 或使其在文件内宽容/etc/selinux/config(两者都不推荐),或者更好的是,设置安全上下文:

setsebool -P allow_ftpd_full_access on

相关内容