linux:setevaja_korzina_samba

Сетевая корзина Samba

26 марта 2025

При удалении файлов из общей папки они удаляются безвозвратно. Однако можно настроить сетевую корзину, которая будет представлять собой скрытый каталог для временного хранения удаленных объектов с Samba.

Для этого необходимо отредактировать файл конфигурации Samba: /etc/samba/smb.conf

К необходимой шаре/ам необходимо добавить следующие строки:

vfs objects = recycle
recycle:repository = .recycle/%U
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 0
recycle:exclude = *.tmp, ~$*, ~~$*, .~lock*
recycle:exclude_dir = /tmp

Параметры означают следующее:

  • vfs objects = recycle — включаем подсистему recycle.
  • recycle:repository — где хранить удаленные объекты. В данном случае удаленные файлы попадут в скрытый каталог .recycle, в котором будет создан каталог с именем пользователя, который удалил файл или папку.
  • recycle:keeptree — сохранять дерево каталогов.
  • recycle:touch — изменять дату изменения файла при перемещении в корзину.
  • recycle:versions — добавлять номер версии файла при совпадении имён.
  • recycle:maxsize — максимальный размер файлов, которые необходимо помещать в корзину. 0 — без ограничений.
  • recycle:exclude — исключить файлы.
  • recycle:exclude_dir — исключить каталоги.

Пример:

[public]
    comment = Public directory
    path = /path/to/public
    public = yes
    browseable = yes
    writable = yes
    vfs objects = recycle
    recycle:repository = .recycle/%U
    recycle:keeptree = Yes
    recycle:touch = Yes
    recycle:versions = Yes
    recycle:maxsize = 0
    recycle:exclude = *.tmp, ~$*, ~~$*, .~lock*
    recycle:exclude_dir = /tmp

Для вступления изменений в силу перезапустим Samba:

sudo service smbd restart
  • %S — Имя текущей службы
  • %P — Корневой каталог текущей службы
  • %u — Пользователь текущей службы
  • %g — Основная группа %u
  • %U — Имя пользователя для сеанса (может отличаться от имени,запрошенного клиентом)
  • %G — Основная группа %U
  • %H — Домашний каталог пользователя
  • %v — Версия Samba
  • %h — Имя хоста, на котором работает Samba
  • %m — NetBIOS-имя компьютера-клиента
  • %L — NetBIOS имя сервера
  • %M — Имя хоста для компьютера-клиента
  • %N — Имя NIS-сервера домашних каталогов. Значение определяется при помощи файла настройки системы NIS auto map. Если вы скомпилировали Samba без automount, то значение совпадает с установленным для сервера NetBIOS именем
  • %p — Путь к домашнему каталогу службы. Определяется при помощи файла настройки
  • системы NIS auto map, как %N:%p
  • %R — Выбранный после установления соединения уровень протокола
  • %d — Номер текущего серверного процесса
  • %a — Операционная система клиента (значение может быть неверным)
  • %I — IP-адрес клиентской машины
  • %T — Текущие дата и время

Строка recycle:repository = .recycle/%I/%U будет помещать удалённые файлы в каталог с именем IP-адреса компьютера, с которого было произведено удаление, и именем пользователя.

Каталог корзины необязательно размещать внутри шары. Она может находиться в любом другом диске за её пределами, например если вы не хотите чтобы пользователи могли просматривать её содержимое.

  • linux/setevaja_korzina_samba.txt
  • Последнее изменение: 13.01.2026 19:43
  • r0wbh