为什么用户不能删除不属于任何人的目录?

为什么用户不能删除不属于任何人的目录?

我配置了一个基本的 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 上使用 SMB 创建一个名为的目录时example,目录结构如下所示

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 删除或修改来宾创建的文件?

答案1

父目录权限中的标志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

相关内容