Basicamente, o que estou procurando é uma maneira de compartilhar pastas entre meu host Debian Jessie e o convidado do Windows 7, sem o medo de excluir acidentalmente arquivos no Windows e não ter uma maneira (conveniente) de restaurar esses arquivos.
Presumi que isso é algo que pode ser alcançado facilmente, mas parece que não é de todo.
Pesquisando um pouco no Google, encontrei esta solução alternativa muito detalhada no TechNet:
Habilite a Lixeira em unidades de rede mapeadas
Mas, como se viu, parece funcionar quando se está em um ambiente Windows em ambos os lados (e possivelmente mesmo assim não com o VirtualBox, mas, por exemplo, com um sistema Windows normal com NTFS habilitado atuando como servidor). Veja meus comentários e de outras pessoas:
... Ao excluir um arquivo, o Windows primeiro pergunta se desejo movê-lo para a lixeira e, em seguida, informa em outra caixa de diálogo que preciso de permissão (concedida pelo administrador) e mostra um botão de nova tentativa. Em seguida, clicar em repetir falha porque o arquivo já foi excluído. Não importa se o Explorer é executado como administrador, pois o comportamento é o mesmo ...
Portanto, quero encontrar outra solução para esse problema - não importa se isso pode ser alcançado apenas com o convidado (como o hack descrito no TechNet) ou se envolve algumas alterações na configuração do host (por enquanto). Fico feliz com qualquer contribuição!
Posso imaginar algo como cópias de sombra noext4sistema de arquivos (se isso for possível) ou até mesmo configurar um servidor de arquivos comSamba(?) no meu anfitrião e encontrar uma maneira de mapeá-lo para o hóspede.
Como você pode ver, tenho muito menos conhecimento aqui ...
Responder1
No Linux, o Samba pode interceptar exclusões de arquivos e movê-los para outro repositório, usando o módulo vfs_recycle.
Veja estes links:
- O módulo vfs_recycle
- exemplo vfs_recycle
- Recurso de reciclagem do Samba vfs: script de limpeza
- relógio tmp- remove arquivos que não foram acessados por um período de tempo
Responder2
Graças à resposta fornecida por @harrymc consegui configurar o Samba com a lixeira habilitada. Estas são as etapas que fiz:
1. Desative as pastas compartilhadas do Virtual Box
Primeiro de tudo, desativei todas as pastas compartilhadas do Virtual Box para que todo o compartilhamento de arquivos seja feito apenas por meio de compartilhamentos de rede configurados pelo Samba - no entanto, isso não é um requisito.
2. Instale o Samba
Eu então segui as instruções emhttps://wiki.debian.org/SambaServerSimplepara instalar o Samba ...
apt-get install samba samba-client
3. Crie um usuário Samba
... e então criando um novo usuário com:
smbpasswd -a johndoe
4. Atualize a 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 //debian/shared
conforme o nome do computador host édebianNo 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
Assim que 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 //debian/shared
usando o Windows Explorer e inseri as credenciais parajohndoeconforme configurado anteriormente. E agora, ao excluir um arquivo, ainda me perguntam se quero excluí-lo permanentemente, mas ao confirmar comsimna verdade, o arquivo não é excluído, mas movido para o diretório do repositório de reciclagem.
Notas:
Eu reconheci issoexcluindo uma pasta vaziacomo convidadoirá removê-lo permanentementeno host também, em vez de mover para o diretório do repositório de reciclagem.
Protegendo a lixeira...
Embora a hide files = /.recycle/
configuração 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, /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 [global]
estavam inicialmente presentes após a instalação do samba. Mas como sempre quero saber o que realmente está configurado dei uma olhadahttps://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.htmlpá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, comentei [printers]
algumas [print$]
seções porque não quero compartilhar minhas impressoras por enquanto.
Eu também comentei a [homes]
seção. Principalmente porque não sei muito sobre as implicações em termos de segurança ao habilitá-lo. Se alguém quiser detalhar isso aqui, seja bem-vindo!
O que acho que entendo é map to guest = Never
e usershare allow guests = no
desabilitarei 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 significam sozinhos ou todos juntos, 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 nas páginas de manual:
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
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.