![异构环境“漫游”配置文件](https://linux22.com/image/801295/%E5%BC%82%E6%9E%84%E7%8E%AF%E5%A2%83%E2%80%9C%E6%BC%AB%E6%B8%B8%E2%80%9D%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.png)
我所说的“漫游配置文件”实际上是指“共享主目录”。
因此,我设置了一个 AD 对,并在 上共享了一个文件夹\\ad-1\homes
。然后将 AD 用户对象设置为挂载H:\ = \\ad-1\homes\%username%
。这在 Windows 上运行良好(正如您所期望的那样)。
我还在用户 OU 上的 GPO 上配置了文件夹重定向,以指向文档等等\\ad-1\homes\%username%\Documents
。
一切都按照您在 Windows 上预期的方式运行。耶。
然而。
Linux 则不同。使用 Winbind 和 Samba,我加入了域。没问题。
# wbinfo -u
PRODUCT\administrator
PRODUCT\guest
PRODUCT\krbtgt
PRODUCT\aa
PRODUCT\ab
我已经编辑了 AD uidNumber 和 gidNumber,以便得到以下内容:
# wbinfo -i PRODUCT\\aa
PRODUCT\aa:*:10001:10000:aa:/home/PRODUCT/aa:/bin/bash
我天真地以为,我可以挂载\\ad-1\homes
它们/home/$DOMAIN
,而且由于用户名相同,我就可以将它们用作主目录。
除非因为 cifs 共享是在启动时以 root 身份安装的,否则权限会dwrxr-x-r-x root root .
一直延伸到目录树,因此用户无法对其进行写入。
我尝试了几乎所有 mount.cifs 选项的组合,包括有希望的“ multiuser
”,并发现使用 效果最佳sec=krb5i
。
我想要的是能够将 \ad-1\homes 目录挂载到 /home/$DOMAIN 之上,并使其看起来像
name owner
aa/ DOMAIN\aa
ab/ DOMAIN\ab
administrator DOMAIN\administrator
等等。
有人知道这是如何实现的吗?
Windows 2008 R2,安装在 SLES 11 SP2 上。
答案1
我们使用已加入 Active Directory 域 (winbind) 的 Debian 机器执行此操作。我们使用pam_mkhomedir
在登录时在 /home/EXAMPLE/$USER 下为 AD 用户创建一个主文件夹。然后pam_mount
执行 AD 主目录的安装。在 Debian 上,我们需要安装libpam-mount
,pam_mkhomedir
默认情况下已安装
安装后,以下文件会被修改:
/etc/security/pam_mount.conf.xml:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
<debug enable="0" />
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,workgroup,nosetuids,noexec,nosuid" />
<mntoptions require="nosuid,nodev" />
<logout wait="0" hup="0" term="0" kill="0" />
<mkmountpoint enable="1" remove="true" />
<!--
Replace "fs1.ad.example.com" with your Windows file server.
We mount our AD user homes under /home/EXAMPLE, change this to suit your needs.
Edit "workgroup=EXAMPLE" to use your domain/realm.
-->
<volume fstype="cifs" server="fs1.ad.example.com" path="home/%(USER)" mountpoint="/home/EXAMPLE/%(USER)" user="*" options="workgroup=EXAMPLE,uid=%(USER),dir_mode=0700,file_mode=0700,nosuid,nodev" />
/etc/pam.d/common-session:
# <snip>
# We use pam to create the AD user home drives
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
session optional pam_mount.so nullok try_first_pass
例如,当我(FCSD\jscott)登录到 Linux 机器时,我的 AD 主文件夹 \\staff\home\jscott 被挂载为 /home/FCSD/jscott。
答案2
我从来没有做过你想要做的事,但我思考实验配置CIFS_ACL如果您想使用单个挂载点执行此操作。否则,@jscott 所做的应该有效,尽管每个用户的主目录都是一个新的挂载点,并且主目录中的 ACL 将不起作用。