Intereting Posts
Ошибка при использовании rsync и scp обрабатывать файлы в каталоге по мере их появления как сделать контрольную сумму в папке в Solaris Помогите мне, пожалуйста, найти мое недоразумение об этом маленьком фрагменте скрипта Есть ли дистрибутив Linux с небольшим или отсутствием инструментов администрирования? Горячая замена зеркального диска на HP UX Почему размеры блоков ограничены размером страницы в Linux? Хвост файла для определенного текста Как проверить работоспособность системы с определенным номером Попытка добиться поддельной прозрачности в Urxvt – может только получить черный фон? Могу ли я настроить сенсорную панель в качестве клавиш-модификаторов в некоторых случаях? Убить все процессы, связанные с приложением Перемещение виртуализованной системы для создания двойной загрузки Не удается подключить шлюз после моста Как сделать bash встроенным «read» игнорировать прокомментированные или пустые строки?

Ограничить доступ FTP только к / var / www с помощью vsftpd

Я запускаю vsftpd как ftp-сервер на моем Linux (rasbian), я вхожу на компьютер как пользователь root.

Я хотел бы по-прежнему блокировать использование только / var / www, как мне настроить vsftpd conf для его выполнения?

Для достижения этой цели необходимо следующее:

Способ 1 #

Изменив домашний каталог пользователя

Убедитесь, что существует следующая строка

 chroot_local_user=YES 

Установите User HOME Directory в /var/www/ , если вы хотите изменить для существующего пользователя, вы можете использовать:

 usermod --home /var/www/ username 

затем установите требуемое разрешение на /var/www/

Способ 2 #

Если вы не хотите менять домашний каталог пользователя, вы можете использовать:

 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. 

Вы можете сделать это:

 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 aw /home/$USER/www-data 

ПРИМЕЧАНИЕ: измените $USER с вашим пользователем. Надеюсь, это поможет.

Проверьте параметры chroot в vsftpd.conf и создайте для него отдельного пользователя, чей homedir установлен в /var/www .