我正在使用 ssh 并尝试将系统从 Ubuntu 10.04 升级到 12.04。连接有问题,所以我必须再次登录才能完成升级。运行后
sudo dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)
这是必需的,似乎系统不再将我识别为 sudoer。如果我以 sudo 身份运行任何命令,我会得到
sudo: unknown uid xxxxx: who are you?
Run Code Online (Sandbox Code Playgroud)
(xxxxx当然是实际的id)并且同样运行whoami
将返回
whoami: cannot find name for user ID xxxxx
Run Code Online (Sandbox Code Playgroud)
此外,当我尝试ssh
获得权限时,我的权限被拒绝(尽管我仍然在不同的会话中登录机器)。
这意味着您正在使用的当前 UID 不存在于/etc/passwd
. 如果您的系统管理员知道他在做什么,这不是一个严重的问题。您可以使用以下方法查看:
strace -f -F -o whoami whoami
Run Code Online (Sandbox Code Playgroud)
然后现在你有一个名为 的文件whoami
,解析它:
grep etc whoami
[...]
5029 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
Run Code Online (Sandbox Code Playgroud)