FTP пользователь ограниченный одной папкой
В этой инструкции описано как создать FTP пользователя и ограничить его одной папкой.
В качестве примера использован шаблон BitrixVM. В шаблоне уже предустановлен FTP сервис VSFTPD.
Пользователь под которым работает веб-сервер - bitrix.
Подключение к серверу
Для создания пользователя и дальнейшей настройки вам необходимо подключиться к серверу по SSH
Настройка
Шаг 1. Создание и настройка пользователя
# Создадим пользователя myftpuser1 useradd myftpuser1 # Установим ему пароль passwd myftpuser1 # Назначаем пользователю папку, которой он будет ограничен, например папка upload в /home/bitrix/www/upload/ usermod -d /home/bitrix/www/upload myftpuser1 # Добавим пользователя в группу bitrix, чтобы пользователь мог изменять файлы, так как пользователь под которым работает веб-сервер - bitrix usermod -g bitrix myftpuser1 #Все папки в пути должны иметь разрешающее право на их выполнение для группы bitrix. По-умолчанию папка /home/bitrix его не имеет. Исправляем chmod g+x /home/bitrix # Для директории /home/bitrix/www/upload добавим права на запись для группы. chmod g+w -R /home/bitrix/www/upload
Шаг 2. Настройка FTP
Необходимо внести дополнительные настройки в конфигурацию FTP сервера, для этого открываем файл /etc/vsftpd/vsftpd.conf
# Найдите и закомментируйте следующий параметр #local_root=/home # Добавьте в конец файла chroot_local_user=YES allow_writeable_chroot=YES local_umask=002
После изменения конфигурации выполним перезапуск сервиса
systemctl restart vsftpd
Шаг 3. Подключитесь по FTP и проверьте работу
Инструкция по подключению в нашей базе знаний Подключение по FTP
Шаг 4. Дополнительно запретить пользователю подключение по SSH
Вы можете запретить FTP-пользователю подключаться по SSH и SFTP:
Для этого добавьте в конец файла /etc/ssh/sshd_config
DenyUsers myftpuser1
И перезапустите SSH-сервис
systemctl restart sshd
Вы можете запретить FTP-пользователю подключаться по SSH, но разрешить подключаться по SFTP.
Для этого добавьте в конец файла /etc/ssh/sshd_config
Match User myftpuser1 ForceCommand internal-sftp
И перезапустите SSH-сервис
systemctl restart sshd