我在学生实验室的 Ubuntu 桌面上运行 NIS 客户端。作为我们暑期项目的一部分,我在一台 PC 上安装了 Ubuntu 18.04,并在其上安装了 NIS 客户端。一切似乎都很好,域名正确,ypwhich
并且ypcat
一切yptest
运行正常。
但是当我使用 NIS 帐户(本地主目录或 NFS 主目录)登录时,GDM 和 LightDM(我都试过了)都会挂起,最终 X 崩溃。使用本地帐户和主目录时工作正常。
错误日志仅显示此消息:
pam_systemd(sshd:session): failed to create session
如果我尝试仅使用终端(++)进行相同的 NIS 登录,我Ctrl可以进行身份验证,但是会话会冻结约 25 秒,然后才给我一个 bash shell,主目录(无论是本地还是 NFS)都已正确安装。这最终在 Ubuntu 16.04 中对我来说效果很好。(我必须添加以下行才能启动 systemd 。)我在 Ubuntu 18.04 上尝试过这个,但没有成功。看起来身份验证和创建会话之间存在延迟,这导致了此问题。我已经下载并安装了最新更新等以及他的最新版本等。AltF1rpc.bind: /bin/systemctl add-wants multi-user.target rpcbind.service
apt-get
谢谢回复。我尝试安装 lightdm,并以 NIS 用户身份登录 X 时取得了一点成功。但是我发现它对我来说不一致,有时登录 X,有时超时,因此在实验室情况下无法使用。我再次重新安装了 16.04,效果很好,所以我打算让它保持原样,直到 18.04 稍微稳定下来。完成之后 Paulo 我刚刚看到你的回复!我会考虑重新安装 18.04 然后回来。谢谢
尝试了 Paulos 的上述提示。不幸的是,我无法在 Ubuntu 18.04 上映射相同的安装文件(即找不到 /etc/systemd/system/systemd-login.service.d 或 /usr/lib/systemd/system/systemd-logind.service 进一步查找后,我发现了 /etc/system/logind.conf。我尝试在那里输入 IPAddressAllow 语句(那里没有提及或没有默认值),但无法识别。还尝试在同一目录中插入我自己的 .conf 文件,但没有成功。这听起来很像相同的症状,或者可能是我在这方面缺乏知识。我会再看一遍,但目前希望 Ubuntu 能尽快发布更新或补丁来解决这个问题
答案1
我也受到了这个问题的影响,起初我也通过注释掉了这个问题
IPAdressDeny=Any
在/lib/systemd/system/systemd-logind.service
就像之前这里提到的许多其他人一样。
然而,除了存在安全风险之外,这只会在 systemd 工具链的下一次更新推出之前起作用,如Arch-Wiki维基百科没有很好地解释的是,如何延长配置systemd-logind.service这样某个地址范围就会被列入白名单,并且这些设置将在更新后继续存在。在阅读了一些RHEL 文档(特别是第 10.6.4 节:修改现有单元文件),以下解决方案对我有用:
创建一个
/etc/systemd/system/
名为您想要扩展的服务的新目录,其中包括.d
,这里将是:systemd-logind.service.d
创建新文件
choose_an_appropriate_name.conf
(例如nis_open_network_interface.conf) 在新创建的目录中包含以下内容,指定您想要允许的 IP 或 IP 范围:[Service] IPAddressAllow=10.10.0.0/16
做一个
systemctl daemon-reload
- 并使用以下方法检查新配置是否实际上是 systemd-logind.service 单元的一部分
systemctl cat systemd-logind.service
- 最后重新启动服务
systemctl restart systemd-logind.service
(这会将您踢出正在运行的 gnome 会话,并且您必须重新登录。)
无需修改任何其他文件!此时,您应该能够再次使用 NIS 用户登录,而不会出现系统冻结。但请注意,这仍然被认为是不安全的(将 IP 地址列入白名单),并且需要 systemd-logind 的沙盒行为。NIS/YP 有点过时,但我仍然发现它经常被使用。此外,可能有一个更好的解决方案,涉及使用名称缓存守护程序神经胶质细胞或者ssd 的正如本文所提到的systemd github 问题处理整个情况。但目前这超出了我的能力范围。
这个答案收集了以前帖子中的所有细节,我希望能够澄清一些问题并给出一个很好的解决方案。
干杯
答案2
我遇到了类似的问题,我从 17.10 升级到了 18.04。虽然我可以用本地用户登录,但会话没过多久就重新启动了。如果不重新启动 gui,我就无法用 nis 用户登录。
通过将显示管理器切换到 lightdm,我能够解决这个问题。
sudo apt install lightdm
sudo dpkg-reconfigure gdm3
然后选择 lightdm 作为管理器。重新启动后,我就能够使用我的 nis 用户登录了。
它并不能解决登录所需的时间问题,但它确实允许我获得 GUI。
答案3
我在为学生配置实验室时也遇到了同样的问题。我的权宜之计是使用 17.10 客户端。即使服务器是 18.04,它们也能正常工作。
但现在我回到家,我刚刚发现一个非常有趣的评论Arch Linux 维基。它提醒大家注意 2017 年 10 月发生的 systemd 变化。这看起来确实是问题所在。他们还提出了一个解决方案,该解决方案基于“这可以通过在 /etc/systemd/system/systemd-logind.service.d/ 中创建一个新的 .conf 文件来实现”,该文件将 NIS 服务器列入白名单。我只能在周一回去工作时尝试这个(或者我会忍不住尝试通过 ssh 进行尝试)。但是,如果您可以访问您的系统,您可以尝试一下并报告结果。
答案4
我可以确认 Tom 提到的第二个解决方案现在对我来说也非常有效(没有注意到错误的路径 - 谢谢)。我也尝试了第一个解决方案,但它似乎再次对我不起作用。我还无意中发现 /etc/systemd/system.conf 文件有一个
IPAddressAllow=(条目已注释掉)
我尝试输入我的内部网络条目(例如 10.0.0.0/16),但似乎没有生效。我是 systemd 新手(来自 ubuntu 14.04)。目前解决方案 2 很完美,我可以解决更新等问题,但如果时间允许,我会再看看选项 1,或者有人可能会破解它。非常感谢大家的帮助