Ubuntu通过SSSD集成AD后$USER变量与whoami输出不一致的问题咨询
Ubuntu通过SSSD集成AD后$USER变量与whoami输出不一致的问题咨询
嗨,我来帮你梳理这个问题的原因和解决办法~
首先咱们先搞清楚几个输出的区别:
whoami是读取当前用户UID对应的本地映射短用户名来输出的,所以显示的是xxxx$USER是登录时由SSSD设置的环境变量,默认配置下SSSD会返回带域名的用户主体名称(UPN),也就是xxx@company.domain.com,这就导致了和whoami的不一致,进而搞砸你提到的这类脚本操作。
解决办法:调整SSSD配置让$USER与whoami保持一致
你需要修改SSSD的主配置文件/etc/sssd/sssd.conf,找到对应AD域的配置段(通常是[domain/company.domain.com]格式的块),添加或修改以下参数:
use_fully_qualified_names = False fallback_homedir = /home/%u
use_fully_qualified_names = False:这个参数会强制SSSD返回短格式的用户名,而非带域名的全称fallback_homedir = /home/%u:作为兜底配置,确保用户HOME目录始终以短用户名命名(你当前的HOME已经是正确的,这个可以保留以防后续出现异常)
修改完配置后,重启SSSD服务让设置生效:
sudo systemctl restart sssd
最后重新登录会话(当前终端的环境变量不会自动更新,必须重新登录),之后验证:
echo $USER应该和whoami的输出一致,都是xxxx- 再测试
sudo usermod -aG foo $USER,这次就能正常把用户添加到目标组里了
备注:内容来源于stack exchange,提问作者paleozogt
相关产品推荐
相关产品推荐

