proFTPd + PostgreSQL (не стандартный конфиг)
Модераторы: SLEDopit, Модераторы разделов
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
proFTPd + PostgreSQL
Приветствую всех, есть следующая задача.
В данный момент используется профтпд с системными юзерами, аутентификацией на уровне ОС и разграничение прав на уровне системных групп, созданных под каждый кталог отдельно, необходимо переделать (в моем случае сделать новый) сервер в следующей конфигурации.
ProFTPd+PostgreSQL причем от связки требуется следующее.
1. Аутентификация на уровне SQL (Стандартное решение)
2. Хранение логов, что, когда и кем(user+ip) было скачано. (Стандартное решение)
3. Хранение логов, что, когда и кем(user+ip) было закачно. (Стандартное решение)
Теперь суть задачи =)
4. НА фтп хранится более 100 каталогов, юзеров более 600, ну с кол-вом проблем тоже нет, а вот дальше....=)
Так вот, требуется чтобы у каждого юзера был не один рабочий каталог, откуда он мог бы качать файлы, а несколько, от 3 до 120 допустим. То есть, обычные статьи в инете позволяют разграничивать доступ в директории средставми управления SQL в один конкретный каталог, мне же нужно чтобы каждый из пользователей имел доступ в разные каталоги, часто пересекающиеся, то есть
Пользователи
user1
user2
user3
Каталоги
home1
home2
home3
User 1 мог качать из home1, home2, home3
User2 мог качать из home2, home3
User3 мог качать home1, home2
Причем, чтобы данные, о доступных каталогах для юзера и разграничение прав на них хранились бы только в SQL без примененния механизма доступа на уровне системных груп, ибо именно этот параметр постоянно меняется и мы бы написали просто свой интерфейс управления для работы с базой. В данный момент написана программа, работающая по SSH и добавляющая юзеров в систему и группы. Этот вариант нам уже не подходит. Столкнулись с ограничением на кол-во групп у пользователя.
Может кто-нибудь делал такое, может надо смотреть в сторону другой связки.....или просто бросьте ссылкой. Я пока не могу найти подобного решения.
Заранее спасибо.
В данный момент используется профтпд с системными юзерами, аутентификацией на уровне ОС и разграничение прав на уровне системных групп, созданных под каждый кталог отдельно, необходимо переделать (в моем случае сделать новый) сервер в следующей конфигурации.
ProFTPd+PostgreSQL причем от связки требуется следующее.
1. Аутентификация на уровне SQL (Стандартное решение)
2. Хранение логов, что, когда и кем(user+ip) было скачано. (Стандартное решение)
3. Хранение логов, что, когда и кем(user+ip) было закачно. (Стандартное решение)
Теперь суть задачи =)
4. НА фтп хранится более 100 каталогов, юзеров более 600, ну с кол-вом проблем тоже нет, а вот дальше....=)
Так вот, требуется чтобы у каждого юзера был не один рабочий каталог, откуда он мог бы качать файлы, а несколько, от 3 до 120 допустим. То есть, обычные статьи в инете позволяют разграничивать доступ в директории средставми управления SQL в один конкретный каталог, мне же нужно чтобы каждый из пользователей имел доступ в разные каталоги, часто пересекающиеся, то есть
Пользователи
user1
user2
user3
Каталоги
home1
home2
home3
User 1 мог качать из home1, home2, home3
User2 мог качать из home2, home3
User3 мог качать home1, home2
Причем, чтобы данные, о доступных каталогах для юзера и разграничение прав на них хранились бы только в SQL без примененния механизма доступа на уровне системных груп, ибо именно этот параметр постоянно меняется и мы бы написали просто свой интерфейс управления для работы с базой. В данный момент написана программа, работающая по SSH и добавляющая юзеров в систему и группы. Этот вариант нам уже не подходит. Столкнулись с ограничением на кол-во групп у пользователя.
Может кто-нибудь делал такое, может надо смотреть в сторону другой связки.....или просто бросьте ссылкой. Я пока не могу найти подобного решения.
Заранее спасибо.
-=Правильно заданный вопрос содержит 50% ответа=-
-
skeletor
- Сообщения: 1224
Re: proFTPd + PostgreSQL
Организовать доступ по группам в sql насколько я знаю - невозможно. Остальное - копайте в сторону proFTPd Administrator. Отличная web-ка, да и доки в инете хватает по поводу настройки. Если нужно помощь - могу дать пару строк из конфига по поводу ведения логов.
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
Re: proFTPd + PostgreSQL
Дык...ограничение на кол-во групп у юзера в системе от этого не изменится......Или я не прав?
-=Правильно заданный вопрос содержит 50% ответа=-
-
skeletor
- Сообщения: 1224
Re: proFTPd + PostgreSQL
Ну а сколько вы планируете использовать групп? Вы ещё учтите, что есть ограничение на сам файл /etc/groups. Да и вот интересная заметка
the 2.6 kernel can handle up to 64k groups per user, but still truncates them at 16 when making use of the AUTH_SYS authentication mechanism
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
Re: proFTPd + PostgreSQL
На данный момент необходимо немногим более 100 групп, соответственно, столько же каталогов на фтп, однако это число будет расти....ну на 5-15 в пол-года. Одновременно, юзер может быть в 88 группах, объединять содержимое папок нельзя, это обусловлено спецификой контента. Вот мне и нужно было бы без использования механики ОС......
ЗЫ
Еще раз оговорюсь, что связка proftpd+postgresql не является обязательной, если существует возможность осуществить желаемое на другой связке - не вопрос.
ЗЫ
Еще раз оговорюсь, что связка proftpd+postgresql не является обязательной, если существует возможность осуществить желаемое на другой связке - не вопрос.
-=Правильно заданный вопрос содержит 50% ответа=-
-
skeletor
- Сообщения: 1224
Re: proFTPd + PostgreSQL
Ну хорошо, а как вы будете разграничивать доступы к папкам без самой ОС? В ОС это всё дело привязано к UID/GID. А в sql'e как вы это свяжите с реальными папками?
-
patrius
- Сообщения: 337
- ОС: Debian (4 & 5) -> Gentoo
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
Re: proFTPd + PostgreSQL
Это и есть суть моего вопроса =)
patrius, спс, сча почитаю.
Ознакомился, собственно, это тоже самое о чем я и читал, везде SQL используется как просто хранение юзеров в базе или рассматривается их хранение в файле, на мой вопрос эти статьи не отвечают. Я так понимаю что в данный момент такого решения не существует. Жаль.
-=Правильно заданный вопрос содержит 50% ответа=-
-
skeletor
- Сообщения: 1224
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
Re: proFTPd + PostgreSQL
Ну вообще-то такая ОС уже есть....в венде такое запросто делается =)
Но это не наш выбор.....Будем извращаться.
Но это не наш выбор.....Будем извращаться.
-=Правильно заданный вопрос содержит 50% ответа=-
-
skeletor
- Сообщения: 1224
Re: proFTPd + PostgreSQL
А какое в винде ограничени по группам?
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: proFTPd + PostgreSQL
У proftpd в конфиге есть <Limit> с AllowGroup, например. И ничто не мешает хранить группы в postgres. Насколько я помню, AllowGroup использует группы из базы, а не реальную группу в системе.
И группы, и пользователей можно хранить в базе(там же -- хранится маппинг на реальные системные uid/gid). Был даже модуль, позволяющий хранить конфиг в базе.
И, собственно, никто не мешает у каждой папки создать свою группу и просто добавлять туда пользователей по мере надобности. Конфиг, правда, будет большим.
И группы, и пользователей можно хранить в базе(там же -- хранится маппинг на реальные системные uid/gid). Был даже модуль, позволяющий хранить конфиг в базе.
И, собственно, никто не мешает у каждой папки создать свою группу и просто добавлять туда пользователей по мере надобности. Конфиг, правда, будет большим.
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
Re: proFTPd + PostgreSQL
KiWi
Уважаемый, именно это мне и нужно....добился того что авторизация идет, все ОК, делается селект группы из базы, у каждый папки должна быть группа только в базе и никак не в /etc/group.
Пока что пытаюсь заставить брать и юзать группы из постгреса но профтпд упорно делать этого не хочет.
Размеры конфига меня не пугают.
Может быть мы с Вами могли бы пообщаться в джаббере или аське более детально?
Уважаемый, именно это мне и нужно....добился того что авторизация идет, все ОК, делается селект группы из базы, у каждый папки должна быть группа только в базе и никак не в /etc/group.
Пока что пытаюсь заставить брать и юзать группы из постгреса но профтпд упорно делать этого не хочет.
Размеры конфига меня не пугают.
Может быть мы с Вами могли бы пообщаться в джаббере или аське более детально?
-=Правильно заданный вопрос содержит 50% ответа=-
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
Re: proFTPd + PostgreSQL
В венде можно на папку задавать много групп...это решило бы мой вопрос, несколько другим способом....но решило бы. Ибо я создал бы штук 30 разных групп наиболее стандартных......и давал бы им доступ к каталогам. Увеличение кол-ва групп для доступа в каталог позволило бы мне уменьшить кол-во групп у юзера.
Но....я не буду ставить венду, там будут свои тараканы. Буду терзать профтпд дальше.
-=Правильно заданный вопрос содержит 50% ответа=-
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: proFTPd + PostgreSQL
ну в линуксе тоже можно. для этого существуют ACL.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
skeletor
- Сообщения: 1224
Re: proFTPd + PostgreSQL
Indarien писал(а): ↑13.10.2010 15:08
В венде можно на папку задавать много групп...это решило бы мой вопрос, несколько другим способом....но решило бы. Ибо я создал бы штук 30 разных групп наиболее стандартных......и давал бы им доступ к каталогам. Увеличение кол-ва групп для доступа в каталог позволило бы мне уменьшить кол-во групп у юзера.
Но....я не буду ставить венду, там будут свои тараканы. Буду терзать профтпд дальше.
Я спрашивал про количество групп, в которых может одновременно находится 1 юзер. Ведь речь идёт именно об этом, а не о том, как задать права на несколько групп и юзеров на папку.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: proFTPd + PostgreSQL
как бы в ms/windows это тоже называется как бы acl.
правда, реализация совершенно иная, но это уже детали.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: proFTPd + PostgreSQL
в произвольном (вероятно, какой-то цифрой оно ограничивается, но, думаю, несколько тысяч точно должно прокатить).
другой вопрос, что основной группой в любой момент времени может являться только одна. man newgrp, man sg.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: proFTPd + PostgreSQL
Indarien писал(а): ↑13.10.2010 14:55KiWi
Уважаемый, именно это мне и нужно....добился того что авторизация идет, все ОК, делается селект группы из базы, у каждый папки должна быть группа только в базе и никак не в /etc/group.
Пока что пытаюсь заставить брать и юзать группы из постгреса но профтпд упорно делать этого не хочет.
Размеры конфига меня не пугают.
Может быть мы с Вами могли бы пообщаться в джаббере или аське более детально?
http://proftpd.org/docs/directives/linked/..._AuthOrder.html не забыли? Вот, например, инструкция по настройке: http://wiki.enchtex.info/_export/xhtml/how...roftpd/auth_sql и http://www.bubuntu.spb.ru/proftpd-mysql/
Вообще, у proftpd можно включить debug лог, в который он выведет всё и даже больше.
И, да, последний раз я видел proftpd пару лет назад.
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
Re: proFTPd + PostgreSQL
KiWi Да ладно, не буду выносить вам мозг =) Наверняка своих задач немало. Про authorder не забыл, работает авторизация и логирование в базу, не могу пока только заставить работать с резултатами селекта имени группы. То есть селект в логах видно что проходит, а вот дальше, когда уже нужно решать пускать участника этой группы в каталог или нет, не работает.
В данный момент мы столкнулись со следующей проблемой, при занесении юзера в 80 групп у него отваливаются остальные.
На старом фтп было сделано 100+ каталогов и 100+ одноименных группу, каждая имеет право на чтение только своего каталога. Есть пользователи, которым необходимо иметь доступ в более чем 80 каталогов. Но при добавлении его в восьмидесятую группу у него пропадает доступ ко всем остальным.
Насчет несколько тысяч....не уверен, но если вы правы, это безусловно решает мой вопрос. Я просто не буду ковырять профтпд дальше, оставлю авторизацию через постгрес, а правами буду рулить через ОС.
Дело в том что старый серв - фриБСД 6.0, честно говоря почти не знаком с этой ОС, возможно в ней такое ограничение есть, а в линуксе нет. Сейчас попробую поищу инфу по Debian 5.
Спасибо за инфо.
Да нет, это как раз не детали, на одну папку можно назначить, штук 10 разных групп с разным уровнем доступа, в лиунксе - не так.
Ну да не суть, я не буду ставить винду в любом случае, так что не будем оффтопить
При условии что на каталог можно назначить 10 групп мне уже не нужно будет заносить юзера во все 80, ему достаточно будет иметь 5-7 групп, поэтому вопрос о максимальном кол-ве групп в линукс стал актуальным ввиду того что нельзя назначить 5-7 групп на один каталог.
В данный момент мы столкнулись со следующей проблемой, при занесении юзера в 80 групп у него отваливаются остальные.
На старом фтп было сделано 100+ каталогов и 100+ одноименных группу, каждая имеет право на чтение только своего каталога. Есть пользователи, которым необходимо иметь доступ в более чем 80 каталогов. Но при добавлении его в восьмидесятую группу у него пропадает доступ ко всем остальным.
Насчет несколько тысяч....не уверен, но если вы правы, это безусловно решает мой вопрос. Я просто не буду ковырять профтпд дальше, оставлю авторизацию через постгрес, а правами буду рулить через ОС.
Дело в том что старый серв - фриБСД 6.0, честно говоря почти не знаком с этой ОС, возможно в ней такое ограничение есть, а в линуксе нет. Сейчас попробую поищу инфу по Debian 5.
Спасибо за инфо.
sash-kan писал(а): ↑13.10.2010 20:53как бы в ms/windows это тоже называется как бы acl.
правда, реализация совершенно иная, но это уже детали.
Да нет, это как раз не детали, на одну папку можно назначить, штук 10 разных групп с разным уровнем доступа, в лиунксе - не так.
Ну да не суть, я не буду ставить винду в любом случае, так что не будем оффтопить
skeletor писал(а): ↑13.10.2010 20:18Indarien писал(а): ↑13.10.2010 15:08
В венде можно на папку задавать много групп...это решило бы мой вопрос, несколько другим способом....но решило бы. Ибо я создал бы штук 30 разных групп наиболее стандартных......и давал бы им доступ к каталогам. Увеличение кол-ва групп для доступа в каталог позволило бы мне уменьшить кол-во групп у юзера.
Но....я не буду ставить венду, там будут свои тараканы. Буду терзать профтпд дальше.
Я спрашивал про количество групп, в которых может одновременно находится 1 юзер. Ведь речь идёт именно об этом, а не о том, как задать права на несколько групп и юзеров на папку.
При условии что на каталог можно назначить 10 групп мне уже не нужно будет заносить юзера во все 80, ему достаточно будет иметь 5-7 групп, поэтому вопрос о максимальном кол-ве групп в линукс стал актуальным ввиду того что нельзя назначить 5-7 групп на один каталог.
-=Правильно заданный вопрос содержит 50% ответа=-
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: proFTPd + PostgreSQL
это и называется acl.
не поделитесь секретом, как это «не так»?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: proFTPd + PostgreSQL
да я и не отрицал :)
watch this.
смотрим права:
Код: Выделить всё
rena:/mnt/data/data/tech_distr# getfacl Miranda
# file: Miranda
# owner: root
# group: root
user::rwx
group::r-x
group:admins:rwx
group:people:r-x
group:rena_data_distr:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:admins:rwx
default:group:people:r-x
default:group:rena_data_distr:r-x
default:mask::rwx
default:other::---редактируем:
Код: Выделить всё
rena:/mnt/data/data/tech_distr# setfacl -m g:consultant_users:r-x Mirandaсмотрим опять:
Код: Выделить всё
rena:/mnt/data/data/tech_distr# getfacl Miranda
# file: Miranda
# owner: root
# group: root
user::rwx
group::r-x
group:admins:rwx
group:people:r-x
group:consultant_users:r-x
group:rena_data_distr:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:admins:rwx
default:group:people:r-x
default:group:rena_data_distr:r-x
default:mask::rwx
default:other::---это линукс.
Код: Выделить всё
rena:/mnt/data/data/tech_distr# uname -a
Linux rena 2.6.32-5-xen-686 #1 SMP Thu Aug 12 18:09:47 UTC 2010 i686 GNU/LinuxСолнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
Re: proFTPd + PostgreSQL
owner group other
Вот в group может находится только одна группа.
Ленивая Бестолоч... да, я вам безусловно верю =)
Дело в том что при таком разграничении прав юезрам можно запретить лазить в тот или иной каталог, но они при этом будут видны ему, когда он заходит на фтп.....в моем случае необходимо чтобы юзеру были видны только те каталоги, в которые у него доступ.
sash-kan вот примерно так =)
Возможно я сумбурно выразил мысли, не так....в смысле так как это работает в данном случае не устраивает лично меня, ввиду специфики.
Вот в group может находится только одна группа.
Ленивая Бестолоч... да, я вам безусловно верю =)
Дело в том что при таком разграничении прав юезрам можно запретить лазить в тот или иной каталог, но они при этом будут видны ему, когда он заходит на фтп.....в моем случае необходимо чтобы юзеру были видны только те каталоги, в которые у него доступ.
sash-kan вот примерно так =)
Возможно я сумбурно выразил мысли, не так....в смысле так как это работает в данном случае не устраивает лично меня, ввиду специфики.
-=Правильно заданный вопрос содержит 50% ответа=-
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: proFTPd + PostgreSQL
совершенно верно. это базовые permission-ы. если же на файловой системе используются acl, эти базовые permission-ы можно перекрыть/дополнить, исходя из надобностей.
нужно, чтобы обслуживающий данное соединение процесс ftp-демона запускался от имени нужного вам пользователя. вот этот-то процесс и можно будет гибко ограничить в правах, розданных с помощью setfacl.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Indarien
- Сообщения: 436
- ОС: Debian, Fedora, Ubuntu
Re: proFTPd + PostgreSQL
О....вот об этом я не думал даже. Спасибо, сча попробуем.
-=Правильно заданный вопрос содержит 50% ответа=-