虛擬盒、Linux 主機、Windows 來賓、共用資料夾和回收站

虛擬盒、Linux 主機、Windows 來賓、共用資料夾和回收站

基本上,我正在尋找一種在 Debian Jessie 主機和 Windows 7 來賓之間共享資料夾的方法,而不必擔心我不小心刪除了 Windows 下的文件,並且沒有(方便的)方法來恢復這些文件。

我以為這是很容易實現的事情,但看起來根本不是。

透過谷歌搜索,我在 TechNet 上找到了這個非常詳細的解決方法:

在映射的網路磁碟機上啟用回收站

但事實證明,它似乎在雙方的 Windows 環境中都可以運作(甚至可能不是使用 VirtualBox,而是使用啟用了 NTFS 的常規 Windows 系統作為伺服器)。看我和其他人的評論:

....刪除檔案時,Windows 首先詢問我是否要將其移至回收站,然後它在另一個對話方塊中告訴我我需要權限(由管理員授予)並顯示重試按鈕。然後點擊重試失敗,因為檔案已被刪除。無論如何,資源管理器是否以管理員身份運行並不重要,因為行為是相同的...

因此,我想找到解決此問題的另一種解決方案 - 是否可以僅通過來賓來實現(如 TechNet 中描述的黑客)或涉及對主機設置的一些更改(目前)。我對任何意見都很高興!

我可以想像類似卷影副本的東西外部4檔案系統(如果可能的話),甚至設定一個檔案伺服器森巴舞(?) 在我的主人並找到將其映射到客人的方法。

正如你所看到的,我在這裡的知識太少了...

答案1

在 Linux 下,Samba 可以使用 vfs_recycle 模組攔截檔案刪除並將檔案移至另一個儲存庫。

請參閱這些連結:

答案2

感謝 @harrymc 提供的答案,我能夠設置 Samba 並啟用回收站。這些是我所做的步驟:

1.停用Virtual Box共享資料夾

首先,我停用了所有 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主機的名稱德比安就我而言。

[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 資源管理器連線並輸入了憑證約翰多如之前配置。現在,在刪除檔案時,仍然詢問我是否要永久刪除它,但在確認時是的該檔案實際上並沒有被刪除,而是移動到了回收儲存庫目錄中。


筆記:

我已經認識到刪除空資料夾在客人將永久刪除它也在主機上,而不是移動到回收儲存庫目錄。


保護回收站...

儘管該hide files = /.recycle/設定確保回收儲存庫資料夾在 Windows 資源管理器標準設定中不可見,但也可以在共用資料夾之外使用回收儲存庫 - 這樣任何用戶端都無法刪除其內容。要將其設定為/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 restrictionsunix 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 passwordspasswd program和的設定passwd chat預設隨 Debian Jessie 的安裝一起提供。

相關內容