Исходная информация:
Я использую Serverpilot для управления своим сервером Ubuntu, который не предоставляет никаких услуг FTP.
serverpilot
/srv/users/serverpilot/
/srv/users/serverpilot/apps/website/public/
. Что я хочу:
Теперь я хотел бы иметь учетную запись FTP, которая может только читать и писать в этот каталог: /srv/users/serverpilot/apps/website/public/ftpdir/
.
Что я пробовал:
sudo apt-get install vsftpd
sudo useradd -m -d /srv/users/serverpilot/apps/website/public/ftpdir ftpuser
(что, вероятно, не является хорошей идеей иметь домашний каталог пользователя в домашнем каталоге другого пользователя)sudo passwd ftpuser
sudo vi /etc/vsftpd.conf
local_enable=YES
так что ftpuser
может использоваться как логин ftpwrite_enable=YES
пользователь может писатьchroot_local_user=YES
не может получить доступ ни к чему за пределами его домашнего каталогаpam_service_name=ftp
потому что я получал 530 Ошибка при входе в системуsudo ufw allow 21/tcp
Проблемы:
ftpuser
также может использоваться как вход по FTP. Я просто хочу иметь одного пользователя ftp и не позволять другим пользователям системы использовать FTP.ftpuser
также может подключиться к серверу по SSH.553 error: could not create file
ошибка при попытке загрузить файл, чтобы исправить это, я столкнулся с таким вопросом: https://askubuntu.com/a/320186 но я не думаю, что это правильный путь, потому что файл должен принадлежать serverpilot
пользователь, а не ftpuser
пользователь. Веб-сайт, работающий под serverpilot
Пользователь должен обработать загруженные файлы.Как я решил это раньше:
Раньше на другом сервере я менял владельца каталога, и после добавления этих дополнительных параметров конфигурации vsftpd он наконец заработал:
file_open_mode=0775
local_umask=022
allow_writeable_chroot=YES
pam_service_name=vsftpd
Но на этом сервере у меня были проблемы с обработкой загруженных файлов из-за права собственности, поэтому я использую file_get_contents()
Функция PHP для передачи файлов через Интернет вместо прямого доступа к ним на сервере, что не очень приятно.
Последний вопрос:
Как я могу просто иметь 1 вход ftp, который может читать и записывать в каталог в домашнем каталоге пользователя, где право собственности остается на пользователя, из которого находится домашний каталог?
Извините за дублирование, я также задавал этот вопрос на Ask Ubuntu без ответа: https://askubuntu.com/questions/774701/ftp-account-for-just-one-directory может быть больше удачи здесь