Permissions

為什麼使用者不能刪除任何人擁有的目錄?

  • October 21, 2021

我配置了一個基本的 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 上創建一個名為exampleusing 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

引用自:https://unix.stackexchange.com/questions/674271