我配置了一个基本的 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