安装 Samba 共享会丢失文件所有权信息

安装 Samba 共享会丢失文件所有权信息

我正在设置一个小域。AD DC 在 Ubuntu 20.04 上运行 samba 4.11.6。我希望该 samba 实例还为用户主目录托管一个 cifs 共享,我可以将其安装在客户端计算机上。所以我想我会创建/home/MYDOMAIN目录,所有域用户的主目录都会在其中。然后我会将其作为 AD DC 上的网络共享公开,并将其安装在同一位置的客户端计算机上 - /home/MYDOMAIN— 这样使用域凭据登录的用户就会自动发现他们的主目录已安装。这是smb.conf实现这一点的方法:

[global]                                                                                                                                                                                                                                                                                                                                                    
        dns forwarder = 192.168.1.1                                                                                                                                                                                                                                                                                                                         
        netbios name = ADDC                                                                                                                                                                                                                                                                                                                              
        realm = MYDOMAIN.COM                                                                                                                                                                                                                                                                                                                                
        server role = active directory domain controller                                                                                                                                                                                                                                                                                                    
        workgroup = MYDOMAIN                                                                                                                                                                                                                                                                                                                                
        vfs objects = dfs_samba4 acl_xattr recycle                                                                                                                                                                                                                                                                                                          
        map acl inherit = Yes                                                                                                                                                                                                                                                                                                                               
        template shell = /bin/bash                                                                                                                                                                                                                                                                                                                          
        template homedir = /home/%D/%U  
[users]                                                                                                                                                                                                                                                                                                                                                     
        comment = User home directories                                                                                                                                                                                                                                                                                                                     
        path = /home/MYDOMAIN                                                                                                                                                                                                                                                                                                                               
        browseable = Yes                                                                                                                                                                                                                                                                                                                                    
        guest ok = No                                                                                                                                                                                                                                                                                                                                       
        create mask = 0640                                                                                                                                                                                                                                                                                                                                  
        directory mask = 0750                                                                                                                                                                                                                                                                                                                               
        writeable = Yes   

除了一个细节之外,一切都很好。如果我现在在同样运行 Ubuntu 20.04 的域成员 PC 上指定以下内容/etc/fstab

//addc.mydomain.com/users    /home/MYDOMAIN  cifs    credentials=/root/.administratorcredentials,vers=3.0,iocharset=utf8     0       0

当我使用 挂载它时mount -a,我得到了/home/MYDOMAINroot:root 拥有的目录。该目录下的所有内容(包括用户的主目录)也归 root:root 所有,这意味着用户将无法写入他们的主目录,除非我让所有内容对每个人都可写,这有点违背了设置此域的初衷。

我读到,当将 samba 设置为 AD DC 时,它的文件共享功能在某种程度上仅限于支持 Windows ACL,而不支持 POSIX。这是怎么回事?我是否因此丢失了所有权信息?当我在 Windows 10 计算机上检查共享目录时,它们似乎归属于它们应该拥有的人。

是否有任何解决方法,或者可能有更好的想法来实现相同的目标 - 只保留域用户主目录的一个副本?

------------------ 编辑 2020 年 10 月 31 日 --------------------

经过大量的进一步挖掘,我找到了导致我的原始配置无法正常工作的可能原因,但尚未找到解决方案。可能是因为我的 idmap 设置不正确(或者根本没有设置)?我之所以这么说,是因为当我在 ad dc 上说以下内容时:

id [email protected]

我收到的响应包含 uid=3000034 和 gid=100(用户)。但在另一台电脑上,即我通过 sssd 加入的域成员,相同的命令产生的响应包含 uid=1001801118 和 gid=1001800513(域[电子邮件保护]

答案1

使用此代替 [用户]

[homes]
   comment = Home Directories
   browseable = no
   read only = no
   create mask = 0700
   directory mask = 0700
   valid users = %S

您必须在 /home/MYDOMAIN 下手动创建每个用户的主目录,或者在用户连接到共享时编写“root preexec”脚本来创建它们。

相关内容