
Básicamente, lo que estoy buscando es una forma de compartir carpetas entre mi host Debian Jessie y mi invitado de Windows 7 sin temor a borrar accidentalmente archivos en Windows y no tener una forma (conveniente) de restaurar esos archivos.
Supuse que esto es algo que se puede lograr fácilmente, pero parece que no lo es en absoluto.
Buscando un poco en Google encontré esta solución alternativa muy detallada en TechNet:
Habilite la Papelera de reciclaje en unidades de red asignadas
Pero resultó que simplemente parece funcionar cuando se está en un entorno Windows en ambos lados (y posiblemente incluso entonces no con VirtualBox sino, por ejemplo, con un sistema Windows normal con NTFS habilitado que actúa como servidor). Vea mis comentarios y los de otras personas:
... Al eliminar un archivo, Windows primero me pregunta si quiero moverlo a la papelera de reciclaje, luego me dice en otro cuadro de diálogo que necesito permiso (otorgado por el administrador) y muestra un botón de reintento. Luego, al hacer clic en Reintentar falla porque el archivo ya está eliminado. De todos modos, no importa si Explorer se ejecuta como administrador, ya que el comportamiento es el mismo...
Así que quiero encontrar otra solución para este problema: no importa si se puede lograr solo con el invitado (como el truco descrito en TechNet) o si implica algunos cambios en la configuración del host (por ahora). ¡Me alegra cualquier aporte!
Puedo imaginar algo así como instantáneas en elext4sistema de archivos (si es posible) o incluso configurar un servidor de archivos conSamba(?) en mi anfitrión y encontrar una manera de asignarlo al huésped.
Como puedes ver, tengo menos conocimiento aquí...
Respuesta1
En Linux, Samba puede interceptar la eliminación de archivos y moverlos a otro repositorio, utilizando el módulo vfs_recycle.
Vea estos enlaces:
- El módulo vfs_recycle
- ejemplo de vfs_recycle
- Función de reciclaje de Samba vfs: script de limpieza
- tmpwatch- elimina archivos a los que no se ha accedido durante un período de tiempo
Respuesta2
Gracias a la respuesta proporcionada por @harrymc pude configurar Samba con la papelera de reciclaje habilitada. Estos son los pasos que he realizado:
1. Deshabilite las carpetas compartidas de Virtual Box
En primer lugar, he desactivado las carpetas compartidas de Virtual Box para que todo el intercambio de archivos se realice únicamente a través de recursos compartidos de red configurados por Samba; aunque esto no es un requisito.
2. Instalar Samba
Luego seguí las instrucciones enhttps://wiki.debian.org/SambaServerSimplepara instalar Samba...
apt-get install samba samba-client
3. Crear usuario de Samba
... y luego creando un nuevo usuario con:
smbpasswd -a johndoe
4. Actualizar la configuración de Samba
Para configurar las carpetas compartidas, actualicé mi /etc/samba/smb.conf
con una sección respectiva llamada [shared]
que se asignará //debian/shared
como el nombre de la computadora host.debianen mi 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. Reiniciar Samba
Una vez que terminé la configuración, guardé el archivo y reinicié samba con:
sudo service smbd restart
6. Hecho
Y eso es. De vuelta en el invitado de Windows al que me conecté //debian/shared
usando el Explorador de Windows e ingresé las credenciales parajuandoecomo se configuró antes. Y ahora, al eliminar un archivo, todavía me preguntan si quiero eliminarlo permanentemente, pero al confirmar conSíEn realidad, el archivo no se elimina, sino que se mueve al directorio del repositorio de reciclaje.
Notas:
he reconocido queeliminar una carpeta vacíaen invitadolo eliminará permanentementeen el host también en lugar de moverse al directorio del repositorio de reciclaje.
Protegiendo la papelera de reciclaje...
Aunque la hide files = /.recycle/
configuración garantiza que la carpeta del repositorio de reciclaje no sea visible con la configuración estándar del Explorador de Windows, también es posible utilizar un repositorio de reciclaje fuera de la carpeta compartida, de modo que ningún cliente pueda eliminar su contenido. Para configurarlo /home/johndoe/.shared.recycle
utilicé:
recycle:repository = ../.shared.recycle
Configuración adicional
Un poco fuera del alcance de esta pregunta, pero aquí puede ver mi archivo de configuración completo. Muchas de las configuraciones en[global]
estaban presentes inicialmente después de instalar samba. Pero como siempre quiero saber qué está realmente configurado, eché un vistazo ahttps://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.htmlpáginas del manual y luego cambió algunas de las configuraciones predeterminadas.
[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 puede ver, he comentado secciones [printers]
y [print$]
ya que no quiero compartir mis impresoras por ahora.
Yo también comenté la [homes]
sección. Principalmente porque no sé mucho sobre las implicaciones en términos de seguridad al tenerlo habilitado. Si alguien quiere dar más detalles sobre esto aquí, ¡de nada!
Lo que creo que entiendo es map to guest = Never
que usershare allow guests = no
deshabilitaré completamente el acceso de invitados.
Pero no sé mucho sobre las otras configuraciones relacionadas con la seguridad que se muestran arriba. Si alguien pudiera explicarme qué quieren decir solos o todos juntos sería genial. Especialmente pam password change
, obey pam restrictions
y unix password sync
no son tan claros para mí, aunque he leído el capítulo respectivo en las 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, las configuraciones para , passdb backend
y vienen con la instalación en Debian Jessie de forma predeterminada.encrypt passwords
passwd program
passwd chat