Подробный гайд: Куда удаляются файлы из общей папки в Astra Linux
Сценарий 1: Удаление через графический файловый менеджер (fly-fm, Double Commander)
При удалении файлов на примонтированных сетевых ресурсах через графические файловые менеджеры (fly-fm, Double Commander) создаётся специальная папка вида .Trash-%uid% или .Trash-1000, куда перемещаются удалённые файлы.
Где искать:
/путь/к/сетевой/папке/.Trash-1000/files/ # сами файлы
/путь/к/сетевой/папке/.Trash-1000/info/ # метаданные (.trashinfo)
Папка .Trash-* создаётся на самом сетевом ресурсе, а не на локальном компьютере.
Особенности:
- Корзина работает только если файловая система сетевого ресурса поддерживает создание скрытых папок и прав доступа
- При удалении через
Shift+Delили с опцией «мимо корзины» файлы удаляются безвозвратно - У разных пользователей создаются отдельные корзины по UID
Сценарий 2: Общая папка через Samba с настроенной корзиной (vfs_recycle)
Если администратор настроил модуль vfs_recycle в Samba, удалённые файлы попадают в специальную директорию, заданную параметром recycle:repository.
Пример конфигурации /etc/samba/smb.conf:
[global]
vfs objects = recycle
recycle:repository = /samba/recycle/%S
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ~$* *.tmp *.bak *.log
[RECYCLE$]
path = /samba/recycle
read only = no
browseable = no # скрыть от обычных пользователей
Ключевые параметры:
| Параметр | Описание |
|---|---|
recycle:repository |
Путь к хранилищу корзины. %S — имя шары, %U — имя пользователя |
recycle:keeptree |
Сохранять структуру папок при удалении |
recycle:versions |
Добавлять нумерацию при конфликте имён (Copy #1 of file.txt) |
recycle:touch |
Обновлять время изменения файла на момент удаления |
recycle:exclude |
Исключить определённые типы файлов из корзины |
Важно:
- корзина Samba может располагаться только в той же файловой системе, что и общая папка, так как используются hard links.
Где искать восстановленные файлы:
/путь/к/репозиторию/имя_шары/пользователь/оригинальный/путь/файл
Сценарий 3: Удаление через консоль (rm, unlink)
При удалении файлов командами терминала (rm, unlink) корзина не используется — файлы удаляются напрямую из файловой системы.
Последствия:
- Файлы не попадают ни в
.Trash, ни в Samba-корзину - Восстановление возможно только специализированными утилитами:
ext4magic,TestDisk,PhotoRec,R-Linux - Шансы на восстановление резко падают после перезаписи блоков диска
В Astra Linux Special Edition при включённом режиме «безопасного удаления» восстановление невозможно даже спецсредствами.
Сценарий 4: Удаление с Windows-клиента через SMB
При подключении к общей папке Samba с Windows:
- По умолчанию файлы удаляются без корзины (если не настроен
vfs_recycle) - Если корзина Samba настроена — файлы попадают в
recycle:repositoryкак описано выше - Локальная корзина Windows не затрагивается
Как проверить, куда деваются файлы
1. Проверить наличие корзины на сетевом ресурсе:
ls -la /mnt/общая_папка/ | grep -i trash
# или для Samba-корзины:
ls -la /samba/recycle/
2. Проверить конфигурацию Samba:
grep -A 10 "vfs.*recycle" /etc/samba/smb.conf
testparm -v | grep recycle
3. Протестировать удаление:
# Создать тестовый файл
echo "test" > /mnt/share/test_delete.txt
# Удалить через GUI или консоль
# Проверить появление в .Trash или recycle:repository
Как восстановить удалённые файлы
Если файл в корзине (.Trash или recycle:repository):
- Найти папку
.Trash-*/files/или/samba/recycle/... - Скопировать файл обратно в исходное расположение
- При необходимости восстановить права:
chown,chmod
Если файл удалён мимо корзины:
1. Немедленно отмонтировать раздел или смонтировать в режиме «только чтение»:
sudo umount /dev/sdXY
# или
sudo mount -o remount,ro /dev/sdXY
2. Создать образ диска (рекомендуется):
sudo apt install gddrescue
sudo ddrescue /dev/sdXY backup.img recovery.log
3. Использовать инструменты восстановления:
ext4magic— для ext3/ext4:sudo ext4magic -m /dev/sdXYTestDisk/PhotoRec— универсальные:sudo photorec /dev/sdXYR-Linux— графический интерфейс
Настройка: как заставить файлы удаляться в корзину
Для Samba (рекомендуемый способ):
- Отредактируйте
/etc/samba/smb.confкак показано выше
2. Создайте директорию корзины:
mkdir -p /samba/recycle
chown root:sambashare /samba/recycle
chmod 2770 /samba/recycle
3. Перезапустите Samba:
sudo systemctl restart smbd nmbd
Для предотвращения создания `.
Trash` на сетевых ресурсах:
- В Double Commander можно включить «Удаление без корзины» в настройках, но это затронет и локальные файлы. Альтернатива — обучить пользователей использовать
Shift+Delдля сетевого удаления.
Чек-лист для администратора
- Настроить
vfs_recycleв Samba с отдельной скрытой папкой - Ограничить доступ к корзине только для администраторов
- Настроить скрипт очистки корзины по расписанию (cron):
# /root/recycle-clean.sh
find /samba/recycle/ -type f -mtime +30 -delete
# crontab -e
0 2 * * * /root/recycle-clean.sh
- Проинструктировать пользователей о различиях между удалением через GUI и консоль
- Настроить регулярное резервное копирование — это единственный гарантированный способ защиты