虽然在混合环境中使用 Debian 和 Windows 很长时间,但现在我一直坚持尝试使用缓存的凭据在域环境中登录。一旦我使用凭据登录,当计算机不再连接到域控制器时,我仍然想登录。
此行为由 Windows 客户端实现,因此笔记本电脑用户仍然可以登录。除非存在连接,否则只能使用安装点。我想在我的 Debian/GNU Linux 客户端上实现同样的目标。
进一步解释
该工作站使用带有 GUI(Xorg、XFCE、LightDM)和 Samba(Winbind)的 Debian Buster。这几乎是默认安装。
:~$ uname -a
Linux client-ph-wkst 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux
:~$ sudo samba -V
Version 4.9.5-Debian
工作站已成功连接到域控制器 (Samba 4)。一切正常。自从杰西(Jessie)以来我就一直在使用这个设置,它很好。所有域用户都可以登录该计算机,并拥有自动创建的主目录等。唯一的例外是缺少离线身份验证。
根据桑巴维基 (https://wiki.samba.org/index.php/PAM_Offline_Authentication)smb.conf
已被修改为包含winbind offline logon = yes
.
在测试时它按预期工作。当手动将 winbind 设置为脱机 ( sudo smbcontrol winbind offline
) 时,我可以验证 PAM 是否正在使用缓存的凭据。即使通过物理拔掉电缆,我也能达到同样的效果。
问题
但是当我拔掉电缆并重新启动系统时,我无法登录。它挂在 LightDM 登录屏幕上。我可以通过按Ctrl+ Alt+切换到控制台F1。我可以使用系统的 root 帐户登录,因为这不需要域控制器。当我使用 root 查看服务时,我可以看到 nmbd 没有运行。通过检查它的日志journalctl -xe
,我发现它没有启动,因为没有可用的本地 IPv4 非环回接口。
Debian GUI 安装中默认的网络配置工具是 NetworkManager。我nmcli general
可以看到我是不是连接的。
快速而肮脏的解决方案
在不实际插入电缆的情况下,我通过输入手动激活接口nmcli connection up pewpewdefaultconnection
。我重新启动 samba 和 nmbd 服务。瞧!它正在发挥作用。我可以输入我的凭据,甚至可以重新启动 lightdm 服务并使用我缓存的凭据输入所有内容。
可以找到干净整洁的解决方案
因为我不想要像之前描述的那样丑陋的解决方案,所以我请求你帮助我。有没有人以干净的方式完成这个任务?我真的很感激任何帮助。
我不想设置一个进行调用的脚本,正如我之前描述的那样,因为它们看起来很丑陋。如果可能的话,我想更喜欢配置风格的东西。
注意:我尝试在网络接口中使用auto eth0
并使其被 NetworkManager 的配置文件以managed=true
.这并没有显示出任何改进。
答案1
我恢复了一切,只留下winbind offline logon = yes
了smb.conf
。几天后,当拔掉以太网电缆时,我发现它正在工作。哈!?
在网络中的另一台客户端计算机上,我做了相同的配置更改smb.conf
,我可以确认它也在那里工作。