Сетевая корзина (Recycle Bin) на файловом сервере в Samba 4.5
По различными причинам, случается так что какой то файл может быть удален с файлового сервера и в этом случае он будет потерян на всегда. Для того чтобы иметь возможность восстановить удаленный файл на файловом сервере samba предусмотрен модуль VFS (Virtual File System) — recycle (сетевая корзина), рассмотрим его применение.
Мое личное мнение что не стоит давать повсеместный доступ к сетевой корзине, а лучше ее вынести в отдельную общую папку и по необходимости подключать тому или иному человеку, а лучше всегда процесс восстановления удаленных файлов оставить на системном администраторе. Исходя из этого ниже будет рассмотрен именно такой сценарий, с выносом сетевой корзины в отдельную папку.
В файле конфигурации samba (/etc/samba/smb.conf) в секцию [global] добавим следующие параметры:
vfs object = recycle recycle:repository = /samba/recycle/%S recycle:keeptree = yes recycle:versions = yes recycle:touch = yes recycle:exclude = ~$* *.tmp *.TMP *.temp *.bak *.log .DS_Store [RECYCLE$] path = /samba/recycle read only = no recycle:exclude = *.*
[stextbox id=’info’]Пояснения по параметрам recycle:
recycle:repository — Задаем каталог расположения сетевой корзины. Если параметр не задан, то по-умолчанию сетевая корзина (.recycle) будет располагаться в корне каждой общей папки.
recycle:keeptree — Сохранять структуру каталогов для удаленных файлов.
recycle:versions — В случае если у удаленных файлов их имена совпадают, то к удаленном файлу в начале имени будет добавляться Copy #N of.
recycle:touch — Задавать дату изменения файла на время удаления файла.
recycle:exclude — Список исключений для файлов.[/stextbox]
[stextbox id=’warning’]Сетевая корзина может располагаться только в той же FS что и общая папка для которой задается сетевая корзина. В случае если указать путь к сетевой корзине на другом диске, то в этом случае удаленные файлы не будут туда помещены, так как хард-линк можно сделать только в рамках одной FS.[/stextbox]
[stextbox id=’info’]Если уже используется какой-то модуль VFS, то перечисляем все объекты через пробел, например:
vfs object = recycle full_audit[/stextbox]
Если необходимо включение сетевой корзины для какой то определенной общей папке, то тогда выше описанные параметры необходимо прописывать в секцию описания общей папки.