我有一个新安装的 Kubuntu 18.04.1,通过sssd
公司的 Microsoft Active Directory 进行用户身份验证。
每个用户都有一个 Samba 共享//fileserver6/$USER
,我想在登录时挂载它。
我设法pam_mount
配置为在用户登录时挂载共享,它工作正常......直到我退出 KDE,发现 sddm-greeter 不起作用!
没有登录提示,只有一个带有鼠标指针的黑屏。在下面pam_mount.conf.xml
,我可以注释掉<volume>
标签,然后通过 登录sddm
,然后我可以取消注释并登录到终端会话,目录会自动挂载。但我不能两者兼得!
如果无法解决问题,我会很乐意安装另一个显示管理器(如果它有效)(lightdm
甚至不会让我选择用户)。[ETA:lxdm
确实有效]
/etc/security/pam_mount.conf.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<!--
See pam_mount.conf(5) for a description.
-->
<pam_mount>
<!-- debug should come before everything else,
since this file is still processed in a single pass
from top-to-bottom -->
<debug enable="0" />
<!-- Volume definitions -->
<volume user="*" fstype="cifs" server="fileserver6" path="%(USER)"
mountpoint="/media/%(USER)/p" options="cruid=%(USER),sec=krb5" />
<!-- pam_mount parameters: General tunables -->
<luserconf name=".pam_mount.conf.xml" />
<!-- Note that commenting out mntoptions will give you the defaults.
You will need to explicitly initialize it with the empty string
to reset the defaults to nothing. -->
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
<!--
<mntoptions deny="suid,dev" />
<mntoptions allow="*" />
<mntoptions deny="*" />
-->
<mntoptions require="nosuid,nodev" />
<!-- requires ofl from hxtools to be present -->
<logout wait="0" hup="no" term="no" kill="no" />
<!-- pam_mount parameters: Volume-related -->
<mkmountpoint enable="1" remove="true" />
</pam_mount>
/etc/pam.d/sddm
auth requisite pam_nologin.so
auth required pam_succeed_if.so user != root quiet_success
@include common-auth
-auth optional pam_gnome_keyring.so
-auth optional pam_kwallet.so
-auth optional pam_kwallet5.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session optional pam_keyinit.so force revoke
session required pam_limits.so
session required pam_loginuid.so
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
-session optional pam_gnome_keyring.so auto_start
-session optional pam_kwallet.so auto_start
-session optional pam_kwallet5.so auto_start
@include common-password
session required pam_env.so
session required pam_env.so envfile=/etc/default/locale
/etc/pam.d/sddm-greeter
auth required pam_permit.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session optional pam_keyinit.so force revoke
session required pam_limits.so
session required pam_loginuid.so
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
password required pam_deny.so
session required pam_env.so
session required pam_env.so envfile=/etc/default/locale
/etc/pam.d/common-session
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
session required pam_unix.so
session optional pam_sss.so
session optional pam_mount.so
session optional pam_systemd.so
session optional pam_mkhomedir.so
/etc/pam.d/common-auth
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_sss.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_mount.so
auth optional pam_cap.so
/etc/pam.d/common-password
password requisite pam_pwquality.so retry=3
password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
password sufficient pam_sss.so use_authtok
password requisite pam_deny.so
password required pam_permit.so
password optional pam_mount.so disable_interactive
password optional pam_gnome_keyring.so
在使用sddm 0.18.0-1全新安装 debian testing (buster) 时,我也遇到了类似的问题。
以下是我发布到sddm github 问题的消息副本:https ://github.com/sddm/sddm/issues/637 。
tl;博士
修改pam_mount配置
/etc/security/pam_mount.conf.xml
以使用扩展用户控制,以排除sddm用户尝试挂载卷:问题描述
症状
systemctl stop sddm && startx
让我得到一个工作的 KDE Plasma 环境语境
更准确地说:
systemctl restart sddm
将触发上述症状systemctl restart sddm
,将使sddm再次正确显示分析
日志
在系统日志中:
谦虚的假设...待检查
如github中所述:
/etc/pam.d/sddm-greeter
执行时,问题似乎发生在@include common-session
:我不明白的是:
/etc/pam.d/login
:此pam_mount失败被忽略,并且登录可以正常进行/etc/pam.d/sddm-greeter
:sddm 进程捕获一个 SIGTERM,并终止问题/可能的解决方案
sddm进程是否可以静默忽略 中发生的错误
/etc/pam.d/common-session
?否则,是否可以/etc/pam.d/sddm-greeter
通过使用条件substack
而不是简单的来修改@include
?对不起,我不是 pam 的专家,我不知道这是否有意义......
否则,除了上述建议之外,以下是另一种可能的解决方法:
其他解决方法:修改您的pam_mount配置
如前所述,问题似乎是因为pam_mount尝试使用
sddm
没有凭据的用户安装共享。因此,基本上,我们只需要将
sddm
用户(和其他人,如果需要)排除在安装共享之外。这使用了pam_mount (链接)中的扩展用户控制功能。因此,而不是在以下定义音量
/etc/security/pam_mount.conf.xml
:我们可以编写(3 种变体,适应您的需求):
变体 1:仅允许给定范围的 UID
变体 2:排除给定范围的 UID
变体 3:仅排除 sddm 用户
结论
很抱歉这篇长篇文章,我希望你会发现它有用!
干杯。