我的 samba 配置如下:
[global]
security = user
guest account = nobody
[media]
path = /data/media
browsable = yes
guest ok = yes
guest only = yes
read only = no
create mask = 0765
运行正常 - Windows 客户端以访客身份浏览共享并映射到 nobody 帐户。但是我遇到了一个奇怪的问题。
如果我有一个无人拥有的文件,例如:
-rwxrw-r-- 1 nobody media 252125 Dec 18 2011 rss.dat
我的 Windows 客户端可以对文件做任何他们想做的事情。但是,如果文件不属于任何人:
-rwxrw-r-- 1 user media 252125 Dec 18 2011 rss.dat
然后我的 Windows 客户端无法触碰该文件,Windows 总是说您需要“SERVER\user”的权限才能更改该文件。然而没有人在媒体组中:
# From /etc/group
media:x:1002:user,nobody
那么,由于组权限,nobody 用户是否应该能够更改文件?还是我遗漏了 Samba 的某些特殊功能?
谢谢!
答案1
我认为这是一个问题,因为您的用户没有将媒体作为主要组。因此您的 Windows 客户端尝试将文件写入用户.用户代替用户媒体。解决这个问题的一个简单方法是chown所有文件没人.媒体代替/数据/媒体您正在分享并强迫客户写成没人.媒体. 你的 smb.conf 看起来应该像这样
[global]
security = user
guest account = nobody
[media]
path = /data/media
browsable = yes
guest ok = yes
guest only = yes
read only = no
create mask = 0765
force user = nobody
force group = media