pam_mount 已停止工作

pam_mount 已停止工作

它的工作原理如下:我的 Ubuntu 工作站通过 Active Directory 进行身份验证,pam_mount 在用户登录时挂载一些 CIFS 目录。现在,由于某种原因,pam_mount 停止工作,没有挂载任何目录。因此,我启用了 pam_mount 调试并看到以下内容:

(rdconf1.c:744): path to luserconf set to
/home/DOMAIN/username/Documents/.pam_mount.conf.xml
(pam_mount.c:365): pam_mount 2.14: entering auth stage
(rdconf1.c:744): path to luserconf set to
/home/DOMAIN/username/Documents/.pam_mount.conf.xml
(pam_mount.c:568): pam_mount 2.14: entering session stage
(pam_mount.c:629): no volumes to mount
command: 'pmvarrun' '-u' 'username' '-o' '1'
(pmvarrun.c:258): parsed count value 0
(pam_mount.c:441): pmvarrun says login count is 1
(pam_mount.c:660): done opening session (ret=0)

那么,没有要安装的卷吗?我的pam_mount.conf.xml情况如下:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>

<debug enable="1" />
<luserconf name="Documents/.pam_mount.conf.xml" />
<volume user="*" sgrp="residents" fstype="cifs" server="dfs.namespace.com" path="data/users/%(USER)/documents" mountpoint="~/Documents" options="uid=%(USER),gid=100,dir_mode=0700" />
<volume user="*" sgrp="residents" fstype="cifs" server="dfs.namespace.com" path="data/public" mountpoint="~/mount/Public" options="uid=%(USER),gid=100,dir_mode=0700" />

<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,uid,gid,dir_mode" />
<mntoptions require="nosuid,nodev,uid,gid,dir_mode" />
<logout wait="0" hup="0" term="0" kill="0" />
<mkmountpoint enable="1" remove="true" />

</pam_mount>

到目前为止,这个配置已经运行了几个月。我不记得最近做过任何配置更改。我怀疑是升级毁了它,因为有一天我注意到我所有的工作站都发生了这种情况。我不知道下一步该去哪里找 :( Google 并没有真正提供帮助。

其中/var/log/syslog写道:

Apr 23 11:25:54 hostname nslcd[1261]: [86d4c7] <authz="username"> ldap_result() failed: Operations error: 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1

但老实说,我一直都在 syslog 中看到这些错误,而且由于 LDAP 身份验证工作正常(现在仍然如此),所以我并没有太注意它。登录似乎在以下情况下工作正常/var/log/auth.log

Apr 23 11:43:48 hostname su[10409]: pam_winbind(su:auth): getting password (0x00000388)
Apr 23 11:43:48 hostname su[10409]: pam_winbind(su:auth): pam_get_item returned a password
Apr 23 11:43:49 hostname su[10409]: pam_winbind(su:auth): user 'username' granted access

除此之外,我没有在/var/log/syslog或中看到任何相关内容/var/log/auth.log。我有 Ubuntu 14.04。我对 Linux 还很陌生,如果有人能告诉我下一步该尝试什么,我将不胜感激 :)

答案1

今天更新后,我遇到了同样的问题。我做了一些测试,发现删除卷的 sgrp="..." 参数允许它们挂载。它似乎认为没有要挂载的卷,因为用户不在列出的组中。

这让我相信该问题是由于 winbind 最新更新中提交的这个错误导致的,该错误会影响群组:https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1573526

我暂时从卷中删除了 sgrp,现在它们似乎正在安装。希望该错误能够得到解决,并能正确修复此问题。希望这会有所帮助。

更新:上面链接的错误已修复,更新已发布,但我仍然遇到同样的问题。Winbind 没有返回给定组的组成员(即“getent group”未返回任何成员)。将“winbind expand groups = 1”添加到 smb.conf 解决了这个问题。我不知道这是否与新的 winbind 更新有关,但我的组在 pam_mount.conf.xml 中再次正常工作。

答案2

感谢 @chtaylor,我最初能够通过从sgrp中的所有条目中删除该属性来解决这个问题pam_mount.conf.xml。后来我意识到sgrp仅当该组是用户的主要组时,该属性才有效。因此,更改sgrp="residents"sgrp="domain users"可让我再次使用这些卷,因为domain users默认情况下是所有 AD 用户的主要组。另一个解决方案是更改 Active Directory 中所需用户的主要组以匹配 pam_mount 配置:

Active Directory 用户和计算机 > 转到用户属性 > 成员 > 设置主要组

相关内容