通过 cifs、sssd 和 Bionic Beaver 的 pam_mount 主目录

通过 cifs、sssd 和 Bionic Beaver 的 pam_mount 主目录

我已经配置了一个 Ubuntu Bionic Beaver 客户端来针对 Samba ADS (Zentyal) 进行身份验证,使用ssd 的本指南曾是或多或少到达那里需要做的一切。编辑:请参阅我的回答以了解该内容的含义“或多或少“。EDIT2:提到的指南已被(重新?)删除,但它无法在 Ubuntu 20.04 及更新版本上运行。

然后我配置pam_mount这样主目录就保留在服务器上,我的客户端会为登录用户安装这些目录。它似乎可以工作,但只有使用 AD 帐户登录时才会出现一些问题。使用本地帐户登录时,一切都按预期工作(但在这种情况下不涉及 pam_mount)。

问题如下:

  1. 即使系统全是意大利语,并且输入法配置为意大利语,键盘布局也是英文。
  2. 我无法将启动器添加到 Ubuntu Dock(它说已添加,但没有显示)
  3. (似乎是 1+2)我无法添加任何新语言,就像我无法将启动器添加到 Dock 一样

这是我的/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" />
    <volume user="*" fstype="cifs" server="zentyal" path="%(DOMAIN_USER)" mountpoint="/home/%(DOMAIN_USER)" options="sec=ntlmssp,nodev,nosuid,mfsymlinks,nobrl" />
    <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
    <mntoptions require="nosuid,nodev" />
    <logout wait="0" hup="no" term="no" kill="no" />
    <mkmountpoint enable="1" remove="true" />
</pam_mount>

有什么线索吗?

答案1

对于任何拥有较新版本的人来说,您必须执行三件事才能使用 SMB v3.0 以有效方式挂载主目录。

  1. 使用 nobrl 选项
  2. 使用 mfsymlinks 选项

有了这两个选项,Chrome 等软件就可以正常工作。但是,gnome-settings 不起作用,这意味着例如无法更改侧边栏中的项目。为此,您还必须添加

  1. “service-db:keyfile/user” 到 /etc/dconf/profile/user

(看https://help.gnome.org/admin/system-admin-guide/stable/dconf-nfs-home.html.en,完全直观)

希望有帮助!

答案2

我还不明白具体原因,但似乎它gnome-control-center不能很好地与新版本的协议兼容cifs,因此您需要强制使用旧的 1.0 版本pam_mount.conf.xml

options="sec=ntlmssp,nodev,nosuid,mfsymlinks,nobrl,vers=1.0"

自内核 4.13 以来,默认的 cifs 协议已经发生了变化(在此之前是vers=1.0默认的),因此您在 Ubuntu 17.10 之前的版本中可能不会遇到此类问题。

此外,以防万一有人推断这个答案解决了较新 Ubuntu 版本中的所有问题,请注意 Ubuntu 18.04 附带 Samba 4.7.x,但 Cosmic 附带 Samba 4.8,这打破了上述sssd 配置指南,其当前形式让你添加

security = ads

到你的客户端/etc/samba/smb.conf,但这不适用于 Samba 4.8+,因为它现在需要 winbindd。如果您碰巧遵循该指南并且他们没有针对当前 Ubuntu 开发版本进行更新,请记住这一点。不幸的是,我不知道如何使用和配置 Samba 4.8+ winbinddsssd但我敢打赌它以某种方式记录在某处。

此外,谈到“或多或少“在我的问题中,请注意该指南没有提到有关客户端中的 id 映射的任何信息/etc/samba/smb.conf,但为了使该程序正常工作,即使在 Ubuntu 18.04 中,我也必须添加以下内容:

idmap config * : backend = tdb
idmap config * : range = 1000000-1999999

idmap config ISONZO5 : backend = rid
idmap config ISONZO5 : range = 5000000-5999999

ISONZO5我设置的值在哪里

workgroup = ISONZO5

这在 smb.conf 手册页中有记录。

其他指南忘记提及的、我必须自己发现的其他好东西是选项mfsymlinks(没有该选项,符号链接将不起作用)和nobrl选项(没有该选项,SQLite 数据库将不起作用,并带来大量桌面软件,如 Chromium 浏览器和 Firefox)。

希望这对其他人有帮助。

答案3

另一个需要注意的是,由于外部限制,我不得不坚持使用 smb v2.0。

在我的设置中,由于 dconf 出现故障,Gnome 出现了很多问题。这是基于内存映射数据库文件,由于存储在 SMB 共享上而导致问题。有一个简单的解决方案,即在 dconf 密钥文件后端将行“service-db:keyfile/user”添加到 /etc/dconf/profile/user,如下所述:https://people.gnome.org/~pmkovar/system-admin-guide/dconf-nfs-home.html

相关内容