我将桌面上的 wsl2 实例加入了 FreeIPA 域。
su myusername
通过执行甚至 ,我可以在登录时正常切换到 ldap 用户sudo -u myusername zsh
。
但我无法设置默认用户/etc/wsl.conf
。我尝试设置:
[user]
default=myusername
我也尝试输入sudo -u myusername zsh
我的.zshrc
,但都给出了错误
<3>WSL (4348) ERROR: CreateProcessEntryCommon:357: getpwnam(myusername) failed 0
答案1
FreeIPA(LDAP)需要运行一个服务(sssd 或 nslcd)来处理 LDAP 连接和查询——但是在 WSL2 执行这部分初始化时,它尚未启动任何服务。
(请记住,WSL2 的启动方式与常规 VM 不同——WSL2 VM 首先启动到固定的“系统发行版”操作系统,然后像 Docker 容器一样生成您的实例。因此,系统发行版可能会在启动 systemd 之前尝试在您的发行版中查找默认用户名。)
解决方法:将 FreeIPA 域中的帐户信息复制到本地 /etc/passwd(具有相同的 UID 和所有内容),使用getent passwd myusername >> /etc/passwd
或手动通过useradd
。