vsftp - как назначить права доступа для вирт. пользователей?

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

vsftp - как назначить права доступа для вирт. пользователей?

Сообщение 156 »

Имеется фтп сервер vsftp , для безопасности созданы виртуальные пользователи. Виртуальные пользователи работают в системе под пользователем без прав users:ftp , и поэтому у меня они получаются имеют все одинаковые права, т.е. если на папку есть доступ у пользователя ftp, то все виртуальные могут в неё заходить, если есть право на удаление и запись, то все могут удалять и записывать. Подскажите, как для виртуальных пользователей разрулить права доступа на чтение, удаление и запись для разных папок?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: vsftp - как назначить права доступа для вирт. пользователей?

Сообщение sash-kan »

на запрос http://www.google.ru/search?q=vsftpd+virtu...+home+directory первая возвращаемая ссылка — как раз руководство по настройке домашних каталогов для виртуальных пользователей для vsftpd: http://howto.gumph.org/content/setup-virtu...ries-in-vsftpd/
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

Re: vsftp - как назначить права доступа для вирт. пользователей?

Сообщение 156 »

Вот что нашлось.
1. Этот пример задаёт каждому пользователю свою директорию и запирает его там.
guest_enable=yes
guest_username=ftp
chroot_local_user=YES
user_sub_token=$USER

Этот вариант нам не подходит, Нужно чтобы пользователи не могли зайти в директорию админа, а админ мог заходить во все ( на то он и админ ;) ), пользователи имели по две папки: первая папка закрытая для всех, используется для хранения своих личных файлов, вторая папка открыта на чтение остальным пользователям для обмена результатами работы и ещё нужна папка для обмена между пользователями, в которую могут писать все, а удалять из неё может только админ или пользователь, который положил туда файл (последнее желательно но не обязательно, но так админу легче жить;)) .
Вот ещё конфигурация с комментариями

Код: Выделить всё

# Пользователь, от имени которого будут вестись все действия на фтп
ftp_username=ftp
# Просмотр с помощью ls -R, рекомендую оставить, поскольку некоторые клиенты именно так и просматривают
ls_recurse_enable=YES
# Активируем виртуальных пользователей
guest_enable=YES
# Действия для виртуальных пользователей ведутся от имени пользователя vsftpd
guest_username=vsftpd
# Виртуальные пользователи имеют права локальных пользователей
virtual_use_local_privs=YES
# Файл, который используется для аутентификации виртуальных пользователей
pam_service_name=vsftpd
# Домашнии директории для каждого виртуального пользователя
user_sub_token=$USER
local_root=/home/vsftpd/$USER
# Привязать локального пользователя к замкнутой среде
chroot_local_user=YES
# Директория, которая используется для замкнутой среды
secure_chroot_dir=/var/run/vsftpd]


Как вариант ответа нашел ещё " А для задачи изначально выбран неверный ftp сервер с минимумом функционала. Здесь нужен был ProFTPD c его References." Автор ответа вообще считает, что на vsftp это не реализуемо.

Ещё вариант ответа, правда я не понял, как это реализовать, автор пространно распространяется, как это сделать.
"chroot prevents virtual users from getting into each other's home directories.
To allow a specific, real local user to access all the "upload" folders in the virtual users' home directories:
-create a group with only the real local user in it;
-chgrp the home directories & the upload folders so that they're owned by the group that was just created and make sure they're readable ®, writable (w) & accessible (x) for the group
-set the "setGID" permission bit on for the home directories & upload folders. This makes sure that newly added (uploaded) files are owned by the proper group.
-I think you can prevent virtual users from chmod just in case by using a vsftpd option to block certain commands, but have not tried that yet
-Set the umask option in the virtual user's config files to a proper value (ie including rw group access), for instance umask=007 (this gives newly uploaded files the inverse permission 770 or rwx for user&group, no permission for anyone else).

Group write permissions on the upload folders imply that you can use "mv" (or "cp") to change uploaded files (ie by changing their ownership to local user) that have wrong permission and would be unaccessible to the local user.
This can be done without root access."

Как говорится, вопрос телезрителя знатокам:
1. В vsftp в принципе можно реализовать выделенное жирным шрифтом?
2. Или прав автор, предлагающий поменять фтп сервер на другой?
3. Если менять фтп сервер, то какой порекомендуете для выполнения перечисленых жирным шрифтом условий?
п.с. В гугле каждый админ хвалит свою работу, типа было очень трудно, но я всё настроил, у меня всё работает, курите маны, ламеры. Надеюсь намёк понят ;) ...
Спасибо сказали:
patrius
Сообщения: 337
ОС: Debian (4 & 5) -> Gentoo

Re: vsftp - как назначить права доступа для вирт. пользователей?

Сообщение patrius »

Нужно чтобы пользователи не могли зайти в директорию админа, а админ мог заходить во все ( на то он и админ ), пользователи имели по две папки: первая папка закрытая для всех, используется для хранения своих личных файлов, вторая папка открыта на чтение остальным пользователям для обмена результатами работы и ещё нужна папка для обмена между пользователями, в которую могут писать все, а удалять из неё может только админ или пользователь, который положил туда файл

для этого нужно:
1 создать каждому пользователь фтп своё имя.
2 создать группу для всех фтп пользователей.
3 запереть всех пользователей в домашних папках
4 сделать соответствующие линки на "рабочие" папки
5 настроить права на доступы к папкам как к такомым системными средствами.
в vsftpd это все реализуемо.

156, отнесись к вопросу ответственно.
Если так не сообразишь распишу пример.
Спасибо сказали:
156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

Re: vsftp - как назначить права доступа для вирт. пользователей?

Сообщение 156 »

Для начала спасибо за адекватный ответ.
1 создать каждому пользователь фтп своё имя.
2 создать группу для всех фтп пользователей.
3 запереть всех пользователей в домашних папках
4 сделать соответствующие линки на "рабочие" папки
5 настроить права на доступы к папкам как к такомым системными средствами.

Всё это я сделал, но для реальных пользователей, которые заведены в системе. Единственное, что я не понял, это про линки? Что вы имели ввиду? С повышением компьютерной грамотности пользователей начались попытки взлома используя имя и логин созданного в системе пользователя. Поэтому для обеспечения безопасности сервера встал вопрос о переходе на виртуальных пользователей. Для реальных пользователей права доступа к папкам без трудностей разрулины на уровне системы - создаются каталоги для каждого пользователя, создаётся пользователь, создаётся группа и назначаются права доступа к папкам. При этом если пользователь логинится в систему, то поменять системные файлы он не может, но может считать конфигурацию. Вопрос-как для виртуальных пользователей сделать выделенное жирным шрифтом?
Спасибо сказали: