Какую лучше связка для хранения и передачи файлов?

Здравствуйте!

Есть офис + удаленные сотрудники. Люди передают фото/документы по ftp в файловое хранилище QNAP TS-210. Другие сотрудники получают доступ к файлом через подключенный сетевой диск в Windows, они работают со скинутой информацией.

Эта система в конторе уже лет 5 работает, до моего прихода, однако стало понятно, что нет возможности настроить выборочные запреты на редактирования папок, файлов (часть сотрудников может запросто удалить свои или чужие кривые данные заметая косяки).
То есть большая часть сотрудников должна скинуть в QNAP TS-210 по ftp фото/документы, но без возможности удалить когда-либо под своим аккаунтом эти данные. Меньшая часть сотрудников должна иметь полные права на редактирования документов/фото.

Какая есть альтернатива этой схеме с возможностью тонкой настройки разрешения на редактирования по пользователям и т.д.?
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
svalx
@svalx
Волгоград, эникейщик со стажем.
Текущую связку вполне можно доработать для вашей задачи. Нужно установить на каталог "липкий бит" chmod a+t dir, далее по событию завершения записи файла менять владельца с группой и права на файлы так, как вам нужно. Создайте группу с полным доступом, добавьте в неё привилегированных сотрудников например editors, права будут 774. Следить за изменениями в ФС можно с помощью скрипта типа:
while inotifywait -e close_write dir; do chown admin:editors dir/*; chmod 774 dir/*; done

Здесь можно подсмотреть более продвинутый вариант, или самому доработать скрипт.
После закрытия любого файла, ранее открытого на запись, в т.ч. создания нового, для всех файлов в каталоге будут назначены новые владельцы, группы и права. Правда удалять файлы не смогут даже привилегированные сотрудники, только админ.
На QTS можно настроить автоматический запуск своего скрипта с помощью создания пакета [autorun], примеры можно найти например здесь.

Если бы вместо QNAP использовался полноценный Linux дистрибутив, то вашу задачу можно было бы более элегантно решить с помощью SELinux.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы