Graças à resposta fornecida por @harrymc, consegui configurar o Samba com a lixeira ativada. Estes são os passos que fiz:
1. Desativar pastas compartilhadas do Virtual Box
Antes de mais nada, desativei todas as pastas compartilhadas do Virtual Box para que todo o compartilhamento de arquivos seja feito somente através de compartilhamentos de rede configurados pelo Samba - isso não é um requisito.
2. Instalar o Samba
Segui as instruções no link para instalar o Samba ...
apt-get install samba samba-client
3. Crie um usuário do Samba
... e, em seguida, criar um novo usuário com:
smbpasswd -a johndoe
4. Atualizar configuração do Samba
Para configurar as pastas compartilhadas, atualizei meu /etc/samba/smb.conf
com uma respectiva seção chamada [shared]
, que será mapeada para //debian/shared
, pois o nome do computador host é debian no meu caso .
[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. Reinicie o Samba
Quando terminei a configuração, salvei o arquivo e reiniciei o samba com:
sudo service smbd restart
6. Concluído
E é isso. De volta ao convidado do Windows, conectei-me a //debian/shared
usando o Windows Explorer e inseri as credenciais para johndoe como configurado anteriormente. E agora, ao excluir um arquivo, ainda me perguntam se desejo excluí-lo permanentemente, mas ao confirmar com yes o arquivo não é realmente excluído, mas movido para o diretório do repositório de arquivos.
Notas:
Eu reconheci que excluir uma pasta vazia no guest a removerá permanentemente no host também, em vez de ir para o diretório de repositório de reciclar.
Protegendo a lixeira ...
Embora a configuração hide files = /.recycle/
garanta que a pasta do repositório de reciclagem não seja visível nas configurações padrão do Windows Explorer, também é possível usar um repositório de reciclagem fora da pasta compartilhada, para que nenhum cliente possa excluir seu conteúdo. Para configurá-lo para /home/johndoe/.shared.recycle
usei:
recycle:repository = ../.shared.recycle
Configuração adicional
Um pouco fora do escopo desta questão - mas aqui você pode ver meu arquivo de configuração completo. Muitas das configurações em [global]
estavam inicialmente presentes após a instalação do samba. Mas como eu sempre quero saber o que está realmente configurado, eu dei uma olhada em link páginas de manual e, em seguida, alterou algumas das configurações padrão.
[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
Como você pode ver, eu comentei as seções [printers]
e [print$]
, já que não quero compartilhar minhas impressoras por enquanto.
Eu também comentei a seção [homes]
. Principalmente porque eu não sei muito sobre as implicações em termos de segurança ao ativá-lo. Se alguém quiser elaborar isso aqui, você é bem-vindo!
O que eu acho que entendo é que map to guest = Never
e usershare allow guests = no
desativarão completamente o acesso de convidados.
Mas não sei muito sobre as outras configurações relacionadas à segurança mostradas acima. Se alguém pudesse me explicar o que eles querem dizer sozinho ou todos juntos, isso seria ótimo. Especialmente pam password change
, obey pam restrictions
e unix password sync
não são tão claros para mim, embora eu tenha lido o respectivo capítulo em man pages:
Finalmente, as configurações para passdb backend
, encrypt passwords
, passwd program
e passwd chat
vêm com a instalação no Debian Jessie por padrão.