У меня на коробке примерно 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. Вы не можете перейти в другие каталоги более высокого уровня.
вы можете создать несколько записей в списке для нескольких групп. Я считаю, что порядок, в котором эти группы находятся в файле списка, будет определять их верхний каталог.
Надеюсь, это поможет. Томас
Есть несколько вариантов.
Установите домашний каталог пользователя в необходимый каталог (в / etc / passwd) и настройте членство в группах, а также настройте vsftpd для chroot их в их домашнюю папку.
echo chroot_local_user=YES >> /etc/vsftpd/vsftpd.conf
Если им действительно нужен локальный доступ по какой-то причине, тогда все становится немного сложнее, что подводит меня к пункту 2.
Заблокируйте пользователей в их домашнюю папку, как в №1, но не меняйте их домашние папки в / etc / passwd. Вместо этого добавьте точку монтирования в каталоги, к которым им нужен доступ внутри домашней папки.
mount --bind /tmp/site1 /home/ftp_user/site1
Это требует дополнительного щелчка пользователем, но позволяет правильно установить домашний каталог.
Кроме того, я бы запускал ежедневное задание cron, чтобы дважды проверять членство и настраивать домашнюю папку / точку монтирования в случае, если членство в группе изменилось.
такой сценарий идеально подходит для proftpd + mod_mysql, он позволит вам
Все это возможно только в том случае, если вы переходите на proftpd, но, поскольку вы, очевидно, не используете это в производстве, я думаю, это не будет такой большой проблемой.