我有一个基于 Active Directory 的用户帐户“andyg”,通过它我可以访问本地 LAN 上的所有计算机,包括几个基于 Xubuntu 16.04 的系统。因此,该用户不是 Linux 系统的本地用户。自从我学会了如何在 Ubuntu 上验证该用户的身份,以及如何将该用户添加到 sudoers 后,我从未遇到过任何问题 - 直到现在。
突然,当我在前几天早上打开终端时,我发现我所在的不是我的“正常”用户文件夹,而是低一级的文件夹,其名称以问号表示:/home/andyg/?/,而不是:/home/andyg/
我在终端提示符下不断收到“我没有名字!”作为我的用户名!我简直无法想象那个名为“?”的文件夹是从哪里来的!
现在,我在这些基于 Linux 的系统上也有一个本地管理帐户,因此我重新启动了系统并使用该本地管理帐户的凭据登录。一切正常。然后我尝试在终端提示符下更改用户:
> su -l andyg
并且,在被要求输入 andyg 的密码后(它毫无问题地接受了),我再次面临以下用户提示:
I have no name!@UBSTUD9200:~$
,即使你输入:
> echo $USER
我得到了“andyg”的回应!
另外,我尝试在使用 andyg 帐户的命令中使用“sudo”:
> sudo nano /etc/samba/smb.conf
我收到了以下回复:
sudo: unknown uid 10006: who are you?
过去这总是运行良好!
接下来,我想检查一下日志文件,看看其中是否有任何线索。在 /var/log/syslog 文件中,有许多条目基本上说明了以下内容:
winbindd“无法找到 andyg 的 Unix 帐户”
, 然后:
“用户 andyg 具有主组 SID (NULL SID),与域 sid 冲突”
...,最后结束于
“操作失败。”
就像我说的,这一切都发生得很突然,我完全想不出任何原因!因为我只具备基本的 Linux 技能,所以我不知道可能出了什么问题,也不知道我到底能做些什么来解决这个问题。
系统似乎拥有有关用户 andyg 的部分信息,但不是全部?缺少什么?我该如何告诉系统它需要知道什么?
以下是我从 wbinfo -u 命令获得的有关用户“andyg”的信息:
> wbinfo -u
guest
krbtgt
administrator
andyg
nbeam
以下是 getent passwd 命令的(相关)输出:
> getent passwd
...
andyg:*:10006:10002:Andre R. Gagne:/home/andyg:/bin/bash
以下是 getent group 命令的(相关)输出:
> getent group
...
domain_admins:x:10003:
domain_users:x:10002:
domain_computers:x:10007:
linuxusers:x:10000:
linuxadmins:x:10001:
有人能帮我吗?我宁愿修复这个问题,也不愿擦除并重新安装操作系统!
PS:我想我应该补充一点,我的域控制器都是 Windows Server 2008 R2,基本上是 Windows 7 的“服务器”版本......
提前感谢任何帮助!
ZTagre。