Благодаря ответу @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.