我们有一台 Ubuntu 10.04 服务器,上面有一堆 Samba 共享,Windows 工作站可以连接到这些共享。每个 Windows 工作站都有一个有效的用户名/密码来访问共享,这些共享的访问权限受 Samba 控制。
我们遇到的问题是 Samba 似乎无法模仿 Windows 处理“只读”属性的方式。
假设我有两个用户,UserA 和 UserB,他们都属于 Staff 组 - UserA 创建了一个可供该组读取/写入的文件(即 chmod rwxrwx---)。如果 UserA 随后设置了“只读”标志,则会将权限更改为 r-xr-x---(即任何人都无权写入)。
由于用户 B 与用户 A 属于同一组,他们应该能够删除“只读”权限 - 但是,他们不能这样做,因为 Samba 不允许这样做。
有没有办法强制 Samba 允许同一组内的用户删除不是他们创建的文件的“只读”权限?
编辑:
Samba smb.conf 如下:
共享在 smb.conf 中定义为:
[global]
log file = /var/log/samba/log.%m
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
obey pam restrictions = yes
map to guest = bad user
encrypt passwords = true
passwd program = /usr/bin/passwd %u
passdb backend = tdbsam
dns proxy = no
netbios name = ubsrv
server string = ubsrv
unix password sync = yes
os level = 20
syslog = 0
usershare allow guests = yes
panic action = /usr/share/samba/panic-action %d
max log size = 1000
pam password change = yes
workgroup = workgroup
[Projects]
valid users = @Staff
writeable = yes
user = @Staff
create mode = 0777
path = /srv/samba/Projects
directory mode = 0777
store dos attributes = Yes
该文件夹本身如下所示:
ls -l /srv/samba/
drwxrwxrwx 2 nobody Staff 4096 2010-11-04 10:09 Projects
提前致谢,
马特
答案1
我们需要有关如何设置共享的更多信息。共享定义的打印输出会有所帮助。您使用的是 ACL 还是在共享定义中定义共享权限?您所说的“设置只读标志”是什么意思?您是指右键单击文件并选中“只读”框吗?如果是这样,那不是最好的方法,您应该研究实施 ACL。Windows XP 的文件系统严重依赖它们,SAMBA 可以完美地与它们配合使用。
答案2
如果您不想强制每个人都以同一用户身份连接,则可以使用字符串“force group”强制正确的组成员身份。人们往往会感到困惑的是,用户可能已经是本地 Linux 组的成员,但就 SMB 而言,您从 Windows 连接时所用的组才是最重要的。
例子:
[someshares]
path=/path/to/someshares
writable = yes
browsable = yes
valid users = @somegroup
create mask = 0775
force create mode = 0775
directory mask = 0775
**force group = somegroup**