Samba共享文件夹出现setgid问题


0

我正在设置一个带有共享目录的文件服务器。内部有每个用户都可以读取的按用户文件夹,以及任何用户都可以读取和写入的共享目录。每个用户的文件夹非常简单。但是,共享文件夹存在一些问题。我执行了用于设置GID文件夹的标准过程:

# chown root shared
# chmod -R ug+rwX shared
# chgrp -R users shared
# find shared -type d -exec chmod g+s "{}" \;
# find shared -type d -exec setfacl -m "default:group::rwx" "{}" \;

在确保所有用户都在“用户”组中之后,这可以通过直接控制台登录,ssh,rsync等完美实现。但是,samba存在一些问题。

使用默认的samba配置,将传播SGID位和GID,但新文件和文件夹未设置组写入位。这似乎是因为ACL被忽略了。根据https://serverfault.com/questions/459479/samba-ignoring-posix-acls,解决方案是添加vfs objects = acl_xattr到smb.conf中。设置完该选项后,将正确设置组写权限。但是,该组然后被设置为用户的主要组,而不是父目录的组,这违背了设置GID位的目的。我试图在链接(注意其他的smb.conf调整map acl inherit = yesstore dos attributes = yesinherit acls = yes),但这些都没有效果。使这项工作正确的方法是什么?

Answers:


0

要为新文件和文件夹设置组,用户和权限,我在服务器上使用以下配置(在中smb.conf):

[shared-folder]
   writeable = yes
   force user  = "user"
   force group = "users"
   create mask = 0664
   force create mode = 0664
   directory mask = 0775
   force directory mode = 0755

您可以通过单独的共享文件夹以这种方式处理公用文件夹。

注意:注释中所指出,此设置可能与ACL不兼容。我建议仅在仅依赖UNIX权限的情况下才这样做。


啊,但是我不想将整个共享的组写入位设置为一个子目录。而且,我也不想强加整个共享的用户或组。
alex.forencich

这是我的工作(与用户共享分开共享),但是根据对此问题的答案之一,forcemask参数与ACL不兼容。
quixotic

@quixotic好点:我的假设是,使用此设置不需要ACL,但可能还有其他原因需要它们。
simlev
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.