【问题解决】VMware +Ubuntu20.04创建用户后无法登陆的问题

🌞这个blog用于解决VMware +Ubuntu20.04创建用户后无法登陆的问题

文章目录

问题说明

这件事是这样的,我尝试用虚拟机创建一个新用户

大概步骤就是

复制代码
sudo useradd username
sudo passwd username
id username  //查看是否创建成功

这两步结束之后

复制代码
cd ~
cat /etc/passwd

确实是创建成功了

这个时候我在虚拟机上面切换用户 并登陆 发现登陆不上去,密码当然是包对的!就是一直处于登陆的界面。

解决方案

然后我问了一下万能的AI:

可以确定是新用户的默认 shell 设置不正确导致的。

问题分析:

useradd -m mosong:使用 sudo 运行 useradd -m mosong 成功创建了用户 mosong 和其家目录 /home/mosong。

默认无密码:useradd 默认创建的用户是没有密码的,所以你最初 su mosong 失败了。

passwd mosong:你通过 sudo passwd mosong 成功为 mosong 设置了密码。

su mosong 后的异常行为

正常的 bash 或 zsh 会话会显示如 mosong@ubuntu:~$ 这样的提示符。

你看到的 $ 提示符暗示它可能运行的是 /bin/sh(在 Ubuntu 上通常是 /bin/dash 的符号链接),或一个更简陋的 shell。

更重要的是, 1 报错 sh: 1: 1: not found 和 PATH 报错 sh: 2: ... not found 表明这个 shell 环境非常不健全,甚至无法正确解析 PATH 变量或你输入的简单命令。这通常发生在用户的 默认 shell 没有被正确设置,或者设置了一个不存在或有问题的程序作为 shell。

图形界面无法登录:这是以上问题的直接后果。图形登录管理器(如 GDM3, LightDM)在尝试为用户启动会话时,会尝试执行用户指定的默认 shell。如果这个 shell 无效、缺失或配置错误,会话就无法启动,登录管理器会简单地把你踢回登录界面,而不会给出详细错误。

解决方案:

所以需要为 mosong 用户设置一个正确的默认交互式 shell,例如 /bin/bash。

步骤:

切换回你的管理员用户或其他有 sudo 权限的用户。

如果你还在 su mosong 的简陋 shell 里,可以输入 exit 退回到用户的 shell。

更改 mosong 用户的默认 shell 为 /bin/bash。

使用 usermod 命令:

复制代码
sudo usermod -s /bin/bash mosong

-s 或 --shell 选项用于指定用户的登录 shell。

/bin/bash 是 Ubuntu 和大多数 Linux 发行版上标准的、功能齐全的交互式 shell。

验证(可选):可以检查用户 mosong 的 shell 是否已更改:

复制代码
grep mosong /etc/passwd

输出应该类似于:

mosong : x: 1001:1001:mosong,:/home/mosong:/bin/bash

(注意最后一部分是 /bin/bash)

最后尝试重新登陆。

总结:

useradd 命令在默认情况下(如果没有使用 -s 参数指定 shell),可能会给用户分配一个 /bin/sh 或者一个非常基础的 shell。对于需要交互式登录(尤其是图形界面登录)的用户,通常需要指定一个功能更强大的 shell,比如 /bin/bash。通过 usermod -s /bin/bash mosong,你为 mosong 设置了一个合适的 shell,解决了登录问题。

于是!!可以了!!

相关推荐
通信小小昕17 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
CedarQR20 小时前
万字长文:从零在 RK3588 上部署 PaddleSpeech 中文 TTS 全流程(FastSpeech2 + HiFiGAN)
开发语言·c++·嵌入式硬件·ubuntu·json
雷工笔记1 天前
Ubuntu迁移记录
笔记·ubuntu
一叶龙洲1 天前
ubuntu26.04 xfce美化成mac
服务器·ubuntu·macos
一叶龙洲1 天前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
敖行客 Allthinker2 天前
Parallels Ubuntu虚拟机项目如何让手机访问?完整解决方案
linux·运维·ubuntu
keyipatience2 天前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
观山岳五楼2 天前
Ubuntu 24 怎么使用Ubuntu 20 的镜像源
linux·运维·ubuntu
辰痕~2 天前
物理机装Linux操作系统(Ubuntu为例)
linux·ubuntu