У меня proftpd работает с серверной частью mariadb (mysql).
Я создал пользователя midas
в базе данных ftp.
В момент первого входа в систему proftpd (запущенный как пользователь proftpd
и группа proftpd
) создает домашний каталог для этого пользователя, расположенный по адресу /var/ftp/
.
Это нормально работает, я вижу создаваемый каталог:
[root@vps ftp]# ls -la total 24 drwxr-xr-x. 5 proftpd proftpd 4096 10 jul 19:19 . drwxr-xr-x. 22 root root 4096 10 jul 12:56 .. drwxrwxr-x. 2 proftpd proftpd 4096 10 jul 19:34 midas
На стороне клиента выдача put
коммандос возвращает 550: Permission denied
ftp> put ~/website.zip remotewebsite.zip local: /home/midas/website.zip remote: remotewebsite.zip 200 PORT command successful 550 remotewebsite.zip: Permission denied
Чтобы убедиться, что я нахожусь в правильном каталоге и что у proftpd ДЕЙСТВИТЕЛЬНО есть доступ на запись в эту папку, я создал пустой файл somefile
.:
[proftpd@vps midas]$ touch somefile
-> не возвращает ошибок и отображается для моего пользователя midas
сторона клиента.
ftp> ls 200 PORT command successful 150 Opening ASCII mode data connection for file list -rw-rw-r-- 1 1001 1001 0 Jul 10 17:48 somefile 226 Transfer complete
Я уверен, что мне здесь не хватает элементарного понимания, но должен признаться, что я впервые работаю с виртуальными пользователями. Мы будем очень благодарны за любые указатели на решение.
Точка в конце набора разрешений заставляет меня думать, что у вас включен контекст безопасности SELinux:
drwxrwxr-x. 2 proftpd proftpd 4096 10 jul 19:34 midas
^--dot
Либо отключите SELinux, либо сделайте его разрешающим в файле /etc/selinux/config
(и то и другое не рекомендуется) или, лучше, установите контекст безопасности:
setsebool -P allow_ftpd_full_access on