Фоновая информация:
Я использую Serverpilot для управления моим сервером Ubuntu, который не предоставляет никакой службы FTP.
Пользователь: serverpilot С домашним каталогом: /srv/users/serverpilot/ И в этом каталоге работает веб-сайт: /srv/users/serverpilot/apps/website/public/.Фоновая информация:
Теперь я хотел бы иметь учетную запись FTP, которая может читать и записывать только в этот каталог: /srv/users/serverpilot/apps/website/public/ftpdir/. [!d9 ]
Что я пробовал:
Пользователь: serverpilot Создал нового пользователя с этим каталогом как дома: sudo useradd -m -d /srv/users/serverpilot/apps/website/public/ftpdir ftpuser (вероятно, хорошая идея иметь домашний каталог пользователя в домашнем каталоге других пользователей) С домашним каталогом: /srv/users/serverpilot/ Отредактировал конфигурацию vsftpd по умолчанию с помощью sudo vi /etc/vsftpd.conf local_enable=YES, чтобы ftpuser мог быть использованным как ftp login write_enable=YES, пользователь может писать chroot_local_user=YES не может получить доступ к чему-либо за пределами своего домашнего dir pam_service_name=ftp, потому что я получаю ошибку с неверной ошибкой 530 . В этом каталоге есть веб-сайт : /srv/users/serverpilot/apps/website/public/.Что я пробовал:
Создал нового пользователя с этим каталогом как дома: sudo useradd -m -d /srv/users/serverpilot/apps/website/public/ftpdir ftpuser ( вероятно, не рекомендуется иметь домашний каталог пользователя в домашнем каталоге других пользователей) ftpuser также может использовать SSH на сервере. Отредактировал конфигурацию vsftpd по умолчанию с помощью sudo vi /etc/vsftpd.conf local_enable=YES, поэтому ftpuser можно использовать как ftp login write_enable=YES, который пользователь может записать chroot_local_user=YES не может получить доступ к чему-либо за пределами своего домашнего каталога pam_service_name=ftp потому что я получаю неверную ошибку 530 LoginКак я ее решил раньше:
В прошлом на другом сервере я изменил права на каталог и после добавив эти дополнительные параметры конфигурации vsftpd, он, наконец, работал:
file_open_mode=0775
local_umask=022
allow_writeable_chroot=YES
pam_service_name=vsftpd
Но на этом сервере у меня были проблемы с обработкой загруженных файлов из-за владения, поэтому я использую функцию file_get_contents() PHP для получения файлов через Интернет вместо прямого доступа к ним на сервере, который не так уж хорош.
Как я решил это раньше:
[d37 ] Как я могу просто иметь учетную запись на 1 ftp, которая может читать и записывать в каталог в домашнем каталоге пользователей, где владение остается у пользователя, где находится домашний каталог?vsftpd не поддерживает пользователей с ограничениями, но proftpd является более мощным и имеет опцию в файле конфигурации (proftpd.conf), чтобы ограничить доступ к некоторым пользователям следующим образом:
<Limit LOGIN>
AllowUser barb
AllowUser dave
AllowGroup ftpuser
DenyAll
</Limit>
Измените
для вашей первой проблемы решение, как указано выше. вторая проблема также может быть решена путем добавления DenyUsers ftpuser к /etc/ssh/sshd_config, а третья проблема может быть решена путем добавления ftpuser к группе serverpilot и добавления serverpilot к группе из ftpuser. также вы должны изменить разрешение папки /srv/users/serverpilot/apps/website/public/ftpdir на 775.Помните, что папка /srv/users/serverpilot/ должна иметь разрешение 755.
Вы можете использовать функцию pure-ftpd PureDB для создания входа ftp только для службы pure-ftpd.