Назад | Перейти на главную страницу

Конфигурация VSFTPD для отправки пользователей в определенные папки

У меня на коробке примерно 30 пользователей. Эти пользователи входят в перекрывающиеся группы (около 6-10 групп). Мне нужно, чтобы они могли попасть в определенную папку в зависимости от их группового назначения при использовании FTP.

То есть группа1 -> / tmp / site1 группа2 -> / tmp / site2

Возможно ли это вообще с VSFTP на SuSE box? К сожалению, использование SFTP не вариант.

Спасибо!

РЕДАКТИРОВАТЬ: И в случае, если пользователь находится в нескольких группах, просто выгружайте их в папку самого высокого уровня, необходимую для просмотра различных папок, к которым у них есть доступ.

Вы можете создать список chroot с помощью vsftpd.conf

см. справочные инструкции здесь: http://www.linuxquestions.org/questions/linux-networking-3/vsftpd-chroot-problem-387883/

Думаю, вы ищете этот фрагмент информации:

Все пользователи, принадлежащие к группе ftp-users, по умолчанию попадают в / home / ftp-docs / ftp_stuff при входе в систему. Они не могут перемещаться в других каталогах и ограничены этим конкретным каталогом.

Ты делаешь это:

Создайте каталог, выполнив следующую команду от имени пользователя root:

mkdir -p / home / ftp-docs / ftp_stuff

Затем сделайте это: -

chgrp ftp-users / home / ftp-docs / ftp_stuff chmod 3777 / home / ftp-docs / ftp_stuff

В /etc/vsftpd/vsftpd.conf напишите chroot_list_enable = YES chroot_list_file = / etc / vsftpd.chroot_list

Поместите имя пользователя группы ftp-users в /etc/vsftpd.chroot_list Затем в файле / etc / passwd сделайте домашний каталог всех пользователей, принадлежащих группе ftp-users, в / home / ftp-docs / ftp_stuff. Затем сделайте следующее:

перезапуск службы vsftpd

Затем войдите в систему через любого пользователя, принадлежащего к группе ftp-users, которую вы одолжите в / home / ftp-docs / ftp_stuff. Вы не можете перейти в другие каталоги более высокого уровня.

вы можете создать несколько записей в списке для нескольких групп. Я считаю, что порядок, в котором эти группы находятся в файле списка, будет определять их верхний каталог.

Надеюсь, это поможет. Томас

Есть несколько вариантов.

  1. Установите домашний каталог пользователя в необходимый каталог (в / etc / passwd) и настройте членство в группах, а также настройте vsftpd для chroot их в их домашнюю папку.

    echo chroot_local_user=YES >> /etc/vsftpd/vsftpd.conf
    

    Если им действительно нужен локальный доступ по какой-то причине, тогда все становится немного сложнее, что подводит меня к пункту 2.

  2. Заблокируйте пользователей в их домашнюю папку, как в №1, но не меняйте их домашние папки в / etc / passwd. Вместо этого добавьте точку монтирования в каталоги, к которым им нужен доступ внутри домашней папки.

    mount --bind /tmp/site1 /home/ftp_user/site1
    

Это требует дополнительного щелчка пользователем, но позволяет правильно установить домашний каталог.

Кроме того, я бы запускал ежедневное задание cron, чтобы дважды проверять членство и настраивать домашнюю папку / точку монтирования в случае, если членство в группе изменилось.

такой сценарий идеально подходит для proftpd + mod_mysql, он позволит вам

  1. легко управлять пользователями через mysql, так как я сомневаюсь, что обработка 30 или даже более пользователей оболочки будет очень удобной
  2. установить домашние каталоги, группы для пользователей на основе данных в таблице
  3. изменить запрос, используемый proftpd для получения информации из базы данных пользователей, чтобы вы могли выполнять условные задачи, как вы предложили (перекрывающиеся группы, какой дом выбрать)
  4. мониторинг использования, пропускной способности через mysql
  5. иметь возможность легко масштабироваться до гораздо большего числа пользователей, чем 30
  6. использовать вашу таблицу пользовательских данных для других административных задач, требующих поиска или изменения пользовательских данных
  7. отображать все эти данные в красивом графическом интерфейсе или веб-панели

Все это возможно только в том случае, если вы переходите на proftpd, но, поскольку вы, очевидно, не используете это в производстве, я думаю, это не будет такой большой проблемой.