Caixas virtuais, hosts Linux, convidados Windows, pastas compartilhadas e lixeiras

Caixas virtuais, hosts Linux, convidados Windows, pastas compartilhadas e lixeiras

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:

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.confcom uma respectiva seção chamada [shared]que será mapeada //debian/sharedconforme 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/sharedusando 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.recycleusei:

      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 = Nevere usershare allow guests = nodesabilitarei 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 restrictionse unix password syncnã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 programe passwd chatvêm com a instalação no Debian Jessie por padrão.

informação relacionada