(используя Ubuntu 12.04)
Мне нужно настроить FTP-сервис, где определенный набор пользователей сможет писать в каталог, а другой — только читать.
Я думаю, что это трудно сделать для одного каталога, потому что, хотя я могу установить биты группы каталога только для чтения или чтения/записи, я не могу связать каталог с двумя группами на двух разных уровнях безопасности. Я прав? Как мне это сделать, если нет.
Я думаю о создании двух каталогов, один с битами группы, установленными на чтение и запись и связанными с группой записи, и другой с битами, установленными только на чтение и связанными с группой чтения. Тогда, надеюсь, есть способ сделать так, чтобы каталог чтения ссылался на файлы, которые были записаны в каталог группы 'write'. Будет ли это работать, как мне это сделать.
Подробный ответ будет лучшим, но я могу провести исследование и сообщить здесь, если получу какие-то указания относительно того, какой подход мне следует использовать и какие технологии мне следует изучить (например, связывание или ACL — о которых я слышал, но не использовал). Я хотел бы сделать это правильно и буду признателен за любую помощь, которую смогу получить.
решение1
Связывание каталоговне будетработа. Если вы делаете симлинк, права симлинка не будут иметь значения, только права исходного каталога. Жесткие ссылки на каталоги обычно не разрешены ОС.
Первое решение:
ncftpd
На ум приходит только одно: просто исключите файловую систему ОС и используйте FTP-сервер, который может ограничивать пользователей доступом только для чтения или только для записи.
Второе решение:
Важно ли, чтобы эти файлы не были доступны для чтения никому, кроме группы 2? Если это не важно, то проще всего сделать каталог доступным для чтения для других, но доступным для записи только для группы.
Третье решение (самое паршивое, на мой взгляд)
Другой метод — создать два отдельных каталога, по одному для каждой группы, и запускать задание cron каждые 5 минут для копирования (или перемещения) файлов из каждого каталога.