Відповіді:
Переконайтеся, що існує наступний рядок
chroot_local_user=YES
Встановіть HOME Directory для користувача /var/www/
, якщо ви хочете змінити існуючого користувача, ви можете використовувати:
usermod --home /var/www/ username
потім встановіть необхідний дозвіл на /var/www/
user_sub_token
Якщо ви не хочете змінювати домашній каталог користувача, ви можете використовувати:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:Автоматично генерувати домашній каталог для кожного віртуального користувача на основі шаблону. Наприклад, якщо домашній каталог реального користувача, вказаний через guest_username, є / ftphome / $ USER, а user_sub_token встановлено на $ USER, тоді, коли тест віртуального користувача увійде в систему, він закінчиться (як правило, chroot () 'ed) у каталог / ftphome / test. Цей параметр також впливає, якщо local_root містить user_sub_token.
Створіть каталог та налаштуйте дозволи:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
Після перезапуску vsftpd
і протестуйте налаштування.
Вибірка успішного зразка:
[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts?
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r-- 1 787 787 24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.
$USER
для local_root
, наприклад, /home/$USER/ftp
(який буде додавати користувачів до ftp
підкаталогу домашнього редактора).
local_root
у фактичний домашній каталог користувача.
Ви можете зробити це:
usermod --home /var/www/ username
Я використав пропозицію Рахуля Патіла вище:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
Але я не міг зрозуміти, чому мені вдалося увійти лише з одним користувачем. Потім я виявив, що ми не можемо chroot до кореневого каталогу (для цього випадку /home/$USER/www-data
), який має доступ для запису. Тому я видаляю доступ для запису за допомогою:
# chmod a-w /home/$USER/www-data
ПРИМІТКА: змінити $USER
зі своїм користувачем.
Перевірте chroot
параметри в vsftpd.conf
і створіть для нього окремого користувача, для якого встановлено homedir /var/www
.
chroot
параметри вvsftpd.conf
і створіть для нього окремого користувача, для якого встановлено homedir/var/www
.