
基本上,我正在尋找一種在 Debian Jessie 主機和 Windows 7 來賓之間共享資料夾的方法,而不必擔心我不小心刪除了 Windows 下的文件,並且沒有(方便的)方法來恢復這些文件。
我以為這是很容易實現的事情,但看起來根本不是。
透過谷歌搜索,我在 TechNet 上找到了這個非常詳細的解決方法:
但事實證明,它似乎在雙方的 Windows 環境中都可以運作(甚至可能不是使用 VirtualBox,而是使用啟用了 NTFS 的常規 Windows 系統作為伺服器)。看我和其他人的評論:
....刪除檔案時,Windows 首先詢問我是否要將其移至回收站,然後它在另一個對話方塊中告訴我我需要權限(由管理員授予)並顯示重試按鈕。然後點擊重試失敗,因為檔案已被刪除。無論如何,資源管理器是否以管理員身份運行並不重要,因為行為是相同的...
因此,我想找到解決此問題的另一種解決方案 - 是否可以僅通過來賓來實現(如 TechNet 中描述的黑客)或涉及對主機設置的一些更改(目前)。我對任何意見都很高興!
我可以想像類似卷影副本的東西外部4檔案系統(如果可能的話),甚至設定一個檔案伺服器森巴舞(?) 在我的主人並找到將其映射到客人的方法。
正如你所看到的,我在這裡的知識太少了...
答案1
在 Linux 下,Samba 可以使用 vfs_recycle 模組攔截檔案刪除並將檔案移至另一個儲存庫。
請參閱這些連結:
- vfs_recycle模組
- vfs_recycle 範例
- Samba vfs 回收功能:清理腳本
- 臨時表- 刪除一段時間內未存取的文件
答案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 restrictions
但unix 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 passwords
、passwd program
和的設定passwd chat
預設隨 Debian Jessie 的安裝一起提供。