我有 Windows 2012 R2 AD。所有用户都是“域用户”组的成员,然后每个用户也是另一个组的成员,具体取决于部门。所有用户在 AD 中都将“域用户”作为其“主要组”。因此它看起来像这样:
uid=40001(user1) gid=123456(domain users) groups=123456(domain users),50001(dep1),301(BUILTIN\users)
uid=40002(user2) gid=123456(domain users) groups=123456(domain users),50002(dep2),301(BUILTIN\users)
uid=40003(user3) gid=123456(domain users) groups=123456(domain users),50002(dep2),301(BUILTIN\users)
现在,在 Samba 共享上,它们的主目录应归 user:dep 所有。我创建目录,将其 chown 到相应的组,并将 guid 设置为 sticky:
drwxrws---+ 4 user1 dep2 41 Jan 13 17:30 user1
drwxrws---+ 3 user2 dep2 22 Jan 13 17:30 user2
drwxrws---+ 3 user3 dep2 22 Jan 13 17:30 user3
在 /etc/samba/smb.conf 中我配置了主目录如下:
[homes]
comment = Home Directories
browseable = no
writable = yes
directory mask=2770
force directory mode=2770
create mask=2770
force create mode=2770
force security mode=2770
force directory security mode=2770
但是,每当我在 Windows 中挂载共享并在其中创建文件或目录时,它将归默认组所有:
-rwxrwx---+ 1 user1 domain users 0 Jan 14 13:16 Test.txt
我如何让 samba 对新文件和目录使用 depX 组?
答案1
在现实生活中,用户个人文件夹中的文件归哪个组所有并不重要:除了所有者用户之外,任何人都无法挂载它。这是我的“homes”共享配置:
[homes]
comment = %S: personal folder
valid users = @MYDOMAIN\my-subdomain-users
read only = No
browseable = No
browsable = No
# root preexec = /usr/local/sbin/mkhomedir.sh %D %S
volume = %U-%S
vfs objects = recycle:keeptree=yes
create mask = 700
directory mask = 700
path = /home/%D/%U
注意掩码:我禁止除所有者之外的所有用户和组访问文件和文件夹(700)。相反,你允许组拥有完全访问权限。你真的需要这样做吗个人的文檔?
PS。关于评论的“root preexec”:较旧的 SAMBA(4 之前)无法自动创建主目录,需要这样的“医疗拐杖”。还请注意路径:我为我的子域创建了符号链接(我不允许其他子域的用户使用此共享):/home/MYDOMAIN --> /var/samba/homes/MYDOMAIN,并且 samba 在指定的路径内创建用户的子目录:%D 替换为 MYDOMAIN,%U 替换为用户的登录名。