我已经设置了 samba 共享文件夹 /shared
我创建了 2 个用户 Jack 和 Jill,他们属于 Developers 组。Developers 对 /shared 目录具有读写和执行权限。
我已执行 chmod g+rws /shared 以确保在添加文件时使用文件夹组而不是用户的默认组。
这是我的问题:
Jack 在 Windows 7 计算机上,在 samba 共享文件夹中创建了新文件夹“新文件夹”。Jill 登录到 Linux 计算机上。Jill 可以读取“新文件夹”的内容,但无法修改或删除它。为什么?
如果 Jill 在登录时在 /shared 目录中创建一个文件夹“新文件夹 2”,Jack 就可以正常看到该文件夹并可以修改/删除它。
为什么在 Windows 中添加文件或文件夹时的权限与在 Linux 上创建的文件夹时的权限不同?
我希望默认行为是 Developers 组的成员对目录中的所有文件和文件夹具有读写权限。因此,如果 Jack 在 Windows 中添加了一个文件夹,则 Jill 默认具有删除该文件夹的权限。
答案1
权限由两个不同的程序设置。如果您使用的是 Linux shell,那么您的 shell 中的 umask 值将控制如何设置新文件的权限。对于 Samba,权限由您的 smb.conf 文件的“创建掩码”或“目录掩码”值设置(如果您没有特别设置它们,则当然是默认值)。
以下是我的 smb.conf(Ubuntu 10.4)的摘录:
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
; create mask = 0700
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
; directory mask = 0700