Permissions
為什麼使用者不能刪除任何人擁有的目錄?
我配置了一個基本的 samba shire 以在我的本地網路上通過 SMB 共享媒體文件而無需憑據(即,作為 SMB 來賓)
/etc/samba/smb.conf
[media] Comment = Media directory Path = /mnt/media Browseable = yes Writeable = Yes create mask = 0666 directory mask = 0777 Public = yes
當我在 Windows 上創建一個名為
example
using SMB 的目錄時,目錄結構如下所示ls -alh total 28K drwxrwxrwt 4 root root 4.0K Oct 21 13:44 ./ drwxr-xr-x 3 root root 4.0K Oct 20 13:33 ../ drwxrwxrwx 2 nobody nogroup 4.0K Oct 21 13:44 example/ drwx------ 2 root root 16K Oct 20 13:36 lost+found/
lsattr --------------e----- ./example
當我嘗試使用標準使用者帳戶從系統中刪除目錄時,我收到一條錯誤消息。
rmdir:未能刪除“範例”:不允許操作
但是,我可以在 Windows 上使用 SMB 刪除該文件夾。這裡發生了什麼,如何允許任何本地 unix 使用者刪除或修改來賓通過 SMB 創建的文件?
父目錄權限中的
t
標誌聲明只有目錄的所有者(或根)可以從中刪除文件或目錄。Samba 似乎被配置為提供使用者訪問作為帳戶
nobody
。您不是nobody
,因此您無權刪除該目錄。我不建議您在頂層創建文件和目錄。將其保留為
lost+found
一個數據目錄,並共享該數據目錄而不是掛載點。# Remove global write permission from the mountpoint chmod go-w,-t /mnt/media # Create your files and directories in here mkdir -m777 /mnt/media/data
現在修復 Samba 數據路徑
[media] comment = Media directory path = /mnt/media/data browseable = yes read only = no guest ok = yes force directory mode = 0777 force create mode = 0666