2

По сути, я ищу способ совместного использования папок между моим хостом Debian Jessie и гостем Windows 7 без страха, что я случайно удаляю файлы в Windows и у меня нет (удобного) способа восстановить эти файлы.

Я предположил, что это то, что может быть достигнуто легко, но, как кажется, это совсем не так.

Немного погуглив, я нашел этот очень подробный обходной путь на TechNet:

Включить корзину на подключенных сетевых дисках

Но, как оказалось, кажется, что он работает с обеих сторон в среде Windows (и, возможно, даже не с VirtualBox, а, например, с обычной системой Windows с включенной NTFS, действующей в качестве сервера). Смотрите мои и другие комментарии людей:

... При удалении файла Windows сначала спрашивает, хочу ли я переместить его в корзину, затем она сообщает мне в другом диалоговом окне, что мне нужно разрешение (предоставлено администратором), и показывает кнопку повтора. Затем повторное нажатие не выполняется, так как файл уже удален. Неважно, работает ли Explorer как администратор в любом случае, так как его поведение одинаково ...

Поэтому я хочу найти другое решение для этой проблемы - может ли оно быть достигнуто с помощью только гостя (например, взлома, описанного в TechNet) или связано с некоторыми изменениями в настройке хоста, не имеет значения (на данный момент). Я рад любому вкладу!

Я могу представить что-то вроде теневых копий в файловой системе ext4 (если это возможно) или даже настройку файлового сервера с помощью Samba (?) на моем хосте и найти способ сопоставить его с гостем.

Как вы видите, у меня здесь слишком мало знаний ...

2 ответа2

3

В Linux Samba может перехватывать удаление файлов и перемещать файлы в другое хранилище, используя модуль vfs_recycle.

Смотрите эти ссылки:

0

Благодаря ответу @harrymc я смог настроить Samba с включенной корзиной. Вот шаги, которые я сделал:

1. Отключить виртуальные папки общего доступа

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

2. Установить самбу

Затем я следовал инструкциям на https://wiki.debian.org/SambaServerSimple для установки Samba ...

apt-get install samba samba-client

3. Создать пользователя Samba

... а затем создаем нового пользователя с:

smbpasswd -a johndoe

4. Обновление конфига Samba

Чтобы настроить общие папки, я затем обновил свой /etc/samba/smb.conf соответствующим разделом с именем [shared] который будет сопоставлен с //debian/shared поскольку имя хост-компьютера в моем случае - debian .

[shared]
   path = /home/johndoe/shared
   comment = My Shared Folder
   read only = no
   browseable = yes
   create mask = 0777
   directory mask = 0777
   guest ok = no
   hide files = /.recycle/
   vfs objects = recycle
      recycle:repository = .recycle
      recycle:keeptree = yes
      recycle:versions = yes
      recycle:touch = yes
      recycle:minsize = 0
      recycle:maxsixe = 0

5. Перезагрузить самбу

Как только я закончил настройку, я сохранил файл и перезапустил samba:

sudo service smbd restart

6. Готово

И это все. Вернувшись к гостю Windows, я подключился к //debian/shared с помощью проводника Windows и ввел учетные данные для johndoe, как было настроено ранее. И теперь, при удалении файла, меня все еще спрашивают, хочу ли я удалить его навсегда, но при подтверждении да файл на самом деле не удаляется, а перемещается в каталог репозитория корзины.


Заметки:

Я признал, что удаление пустой папки в гостевой системе также удалит ее навсегда на хосте, вместо того, чтобы перемещать в каталог хранилища.


Защита корзины ...

Несмотря на то, что параметр hide files = /.recycle/ гарантирует, что папка повторного использования хранилища не будет видна со стандартными настройками Windows Explorer, можно также использовать хранилище повторного использования вне общей папки, чтобы ни один клиент не мог удалить ее содержимое. , Чтобы установить его в /home/johndoe/.shared.recycle я использовал:

      recycle:repository = ../.shared.recycle

Дополнительная конфигурация

Немного выходит за рамки этого вопроса - но здесь вы можете увидеть мой полный файл конфигурации. Многие настройки в [global] изначально присутствовали после установки samba. Но так как я всегда хочу знать, что на самом деле настроено, я заглянул на https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html справочные страницы, а затем изменил некоторые из настройки по умолчанию.

[global]
   workgroup = WORKGROUP
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1024
   syslog only = no
   syslog = 0
   server role = standalone server

   map to guest = Never
   usershare allow guests = no

   pam password change = yes
   obey pam restrictions = yes
   unix password sync = no

   passdb backend = tdbsam
   encrypt passwords = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .


;[homes]
;   comment = Home Directories
;   browseable = no
;   read only = yes
;   create mask = 0700
;   directory mask = 0700
;   valid users = %S

;[printers]
;   path = /var/spool/samba
;   comment = All Printers
;   browseable = no
;   read only = yes
;   create mask = 0700
;   printable = yes
;   guest ok = no

;[print$]
;   path = /var/lib/samba/printers
;   comment = Printer Drivers
;   browseable = yes
;   read only = yes
;   guest ok = no

#[shared]
# ... as shown above

Как видите, я прокомментировал разделы [printers] и [print$] как пока не хочу делиться своими принтерами.

Я также прокомментировал раздел [homes] . Главным образом потому, что я не знаю много о последствиях с точки зрения безопасности при включении его. Если кто-то хочет уточнить это здесь, пожалуйста!

Я думаю, что я понимаю, что map to guest = Never и пользователи usershare allow guests = no будет полностью отключен гостевой доступ.

Но я не знаю много о других настройках безопасности, показанных выше. Если бы кто-то мог объяснить мне, что они значат один или все вместе, это было бы здорово. pam password change , obey pam restrictions и unix password sync мне не очень понятны, хотя я прочитал соответствующую главу на страницах руководства:

https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#PAMPASSWORDCHANGE

https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#OBEYPAMRESTRICTIONS

https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#UNIXPASSWORDSYNC

Наконец настройки по умолчанию для passdb backend , encrypt passwords , passwd program passwd chat поставляются с Debian Jessie.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .