Спробуйте з цим посібником. Можливо, буде працювати для Тебе.
Як це зробити
Встановіть 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, як і всі deamon
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
.
Перезавантажте сервер і все закінчено!