【问题解决】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,解决了登录问题。

于是!!可以了!!

相关推荐
Sean X10 小时前
Ubuntu24.04安装向日葵
linux·ubuntu
Web极客码19 小时前
释放WordPress磁盘空间并减少Inode使用量
服务器·数据库·ubuntu
朝阳58120 小时前
树莓派 Ubuntu 系统登录问题完整指南:解决 Permission denied (publickey)错误
linux·运维·ubuntu
oMcLin21 小时前
如何在 Ubuntu 22.04 上部署并优化 Jenkins 2.x 流水线,提升持续集成与自动化测试的效率?
ubuntu·ci/cd·jenkins
rfidunion21 小时前
ubuntu下使用qemu模拟ARM(一)-------安装samba服务器
服务器·arm开发·ubuntu
HIT_Weston21 小时前
90、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(四)
linux·运维·ubuntu
EndingCoder1 天前
函数基础:参数和返回类型
linux·前端·ubuntu·typescript
济6171 天前
linux(第十三期)--filezilla使用方法(实现ubuntu和windows11文件互传)-- Ubuntu20.04
linux·运维·ubuntu
HIT_Weston1 天前
91、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(五)
linux·运维·ubuntu
知识分享小能手1 天前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04 中的服务器 —— 知识点详解 (22)
服务器·学习·ubuntu