Имеется proftpd с кучей виртуальных пользователей, которые авторизуются через БД. У каждого юзера на диске есть домашний каталог вида /path/to/home/vasya. В конфиге юзерам разрешен доступ только в свой домашний каталог, остальное закрыто.
Сейчас возникла потребность открыть юзерам на чтение большой объем общих данных, причем с хитрым разделением доступа. Данные - несколько тысяч мелких файлов, лежащих в tmpfs, разбиты на каталоги, постоянно обновляются.
Нужно пользователям давать читать эти данные, причем каждому юзеру - индивидуальный набор прав на каталоги. Например:
Васе дать доступ в dir1, dir2, dir3 (ко всем файлам в этих каталогах);
Пете - к каталогам dir2 и dir5;
Мише доступа не давать совсем.
Права доступа меняются по запросу + раз в сутки по крону.
Пока вижу два подхода, оба светят нехилым геморроем:
1) разруливать права через конфиг proftpd. Не особо сложно, но я не знаю, как он будет себя вести с конфигом на несколько мегабайт.
Еще проблема обновлять права на лету: если рестартовать сервер, то подключенные юзеры отвалятся, что не есть красиво; если сигналить ему перечитать конфиг, то уже подключенные юзеры будут продолжать работать со старыми правами, тоже сильно нехорошо.
2) разруливать права через ACL. Придется перенести данные из tmpfs, не смертельно, но неприятно. Кроме того, насколько я знаю, ACL на каталоги не применяются к существующим файлам, придется назначать маску на каталог и обходить все тысячи уже существующих файлов и проставлять каждому права. Еще светят грабли в виде ограничения числа записей в ACL, для ext3 вроде бы 32 штуки максимум. Насчет ext4 не знаю, да и не хочу ее использовать на этой задаче по ряду причин.
Какие еще пути могут предложить уважаемые аналитики ЛОРа?