
我在 Ubuntu 18.04 上共用一些資料夾,因此可以從 Windows 用戶端以讀取/寫入方式存取它們。
文件結構:
myshare/
dir1/
somefile1.txt
somefile2.txt
dir2/
dir3/
samba客戶端對裡面的檔案有讀取/寫入/建立/刪除權限dir1
。
我遭遇了一次意外的用戶事故:用戶會擊中刪除上dir1
,裡面的所有檔案dir1
都被刪除了。
我無法應用可以阻止這種情況的權限設定。這一切似乎都歸結為 samba 用戶端如何實現資料夾結構的刪除,它們透過列出資料夾內容,然後從目錄樹的最深層遞歸地逐一執行檔案刪除來實現這一點。
底線:在伺服器端,我沒有機會區分允許的單一檔案刪除和不需要的完整遞歸資料夾刪除。
我錯過了什麼嗎?
我考慮過兩個技巧,但一直沒能找到解決方案:
我可以在其中放置一個檔案
dir1
來導致 samba 客戶端中止批量刪除操作嗎?我已經取得了一些成功不可刪除的文件中dir1
,但成功似乎是隨機的。我注意到,如果我做
dir1
共享的根,上述風險就消失了。如果使用者隨後按下刪除鍵,dir1
操作就會被拒絕,這是完美的。但是將dir1
、dir2
等dir3
作為單獨的股份並不能很好地擴展。我希望用戶只有一個接入點/myshare
。但是有沒有一種方法可以使dir1
行為像共享一樣(這樣客戶端可以瀏覽它但不能刪除它),但仍然出現在裡面/myshare
?
僅適用於 Windows 檔案總管用戶端的解決方案是可以接受的。