Попробуйте с этим руководством. Может быть, будет работать для вас.
Как это сделать
Установите vsftpd и библиотеку PAM
Изменить /etc/vsftpd.conf
и/etc/pam.d/vsftpd
Создавайте учетные записи пользователей с помощью пользовательских каталогов (например, в / var / www /)
Установите каталоги с правильными chmod
иchown
Создать администратора с полным доступом к серверу
- Установить
vsftpd
(Very Secure FTP Deamon) и libpam-pwdfile
создать виртуальных пользователей
Я хотел создать пользователей FTP, но не хотел добавлять локальных пользователей Unix (без доступа к оболочке, без домашнего каталога и т. Д.). PAM (Pluggable Authentication Modules) поможет вам создать виртуальных пользователей.
sudo apt-get install vsftpd libpam-pwdfile
- редактировать
vsftpd.conf
Сначала вам нужно сделать резервную копию исходного файла
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
Затем создайте новый
sudo vim /etc/vsftpd.conf
Скопируйте и вставьте следующие строки. Файл должен содержать ТОЛЬКО эти строки:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- Зарегистрировать виртуальных пользователей
Чтобы зарегистрировать пользователя, которого вы используете htpasswd
, я предполагаю, что вы apache2
работаете на своем сервере. Создайте vsftpd
папку, затем поместите в нее файлы конфигурации.
sudo mkdir /etc/vsftpd
тогда
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c означает, что мы создадим файл, если он еще не существует -d форсирует MD5, он нужен вам в Ubuntu 12.04, просто используйте его всегда
Команда запросит пароль.
Если вы хотите добавить новых пользователей впоследствии:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- Настройте PAM в
/etc/pam.d/vsftpd
Опять же, вам нужно создать резервную копию оригинального файла
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
и создать новый
sudo vim /etc/pam.d/vsftpd
Скопируйте и вставьте эти 2 строки (это должен быть единственный контент). Я настаиваю только на этих двух строках, я потратил много времени на сохранение оригиналов и просто добавил их.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- Создать локального пользователя без доступа к оболочке
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Вы можете проверить, что он был создан с помощью команды id: id vsftpd. Мы определяем пользователя с помощью оболочки / bin / false из-за параметра check_shell (даже если вы его не используете). Когда конечный пользователь подключается к FTP-серверу, они будут использоваться для прав и собственности:
chmod
и chown
.
- Перезапуск
vsftpd
Обычный способ - использовать init.d, как и все остальные.
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- Создать каталоги
Согласно конфигурации все пользователи будут помещены в эту папку: / var / www / user1.
Вам нужно создать их с определенными правами: корневая папка не может быть доступна для записи!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Примечание: пользователь не может создавать файлы или папки в корневом каталоге.
У vsftpd.conf
нас chroot_local_user=YES
так, что пользователь не может видеть ничего за пределами своей папки. Для него сервер выглядит так:
Так что просто запустите эти команды:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
/var/www/user1
Папка должна существовать или соединение не будет.
Прямо сейчас вы можете попробовать подключиться к вашему FTP
- Создайте пользователя-администратора для доступа ко всему серверу
Чтобы создать пользователя с правами администратора, нам нужно зарегистрировать нового пользователя htpasswd
.
Прежде чем мы это сделаем, я посоветую вам проверить /etc/ftpusers
файл, в котором определены определенные пользователи, которым не разрешено подключаться по FTP. Я думаю, что это только для локальных пользователей, а не виртуальных пользователей, но на всякий случай не выбирайте имя, содержащееся в этом файле.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Теперь нам нужно добавить новую строку в /etc/vsftpd.conf
chroot_list_enable=YES
Это означает, что ваш пользователь будет помещен в их папку (в качестве тюрьмы), КРОМЕ пользователей в / etc /
vsftpd.chroot_list
Давайте создадим этот файл и добавим нашего пользователя, файл представляет собой простую строку, содержащую «theadmin». Добавьте по одному пользователю в строке. Это означает, что вам не нужно создавать /var/www/theadmin
папку, пользователь войдет в систему и начнет /home/vsftpd
.
Перезагрузите сервер, и все готово!