Windows 计算机上的 Samba 共享上的“只读”问题

Windows 计算机上的 Samba 共享上的“只读”问题

我们有一台 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**

相关内容