更改Ubuntu用户名带来的一次惊心动魄的经历

2023-10-10 00:48

本文主要是介绍更改Ubuntu用户名带来的一次惊心动魄的经历,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先指出:新人在Ubuntu系统下(我使用的是12.04LTS版本)更改用户名、普通用户名有一定的风险,操作需谨慎。这是我的亲身经历带来的感悟,期间惊心动魄,在快要放弃的时候,我使用了我的最后一根稻草,认真的阅读了Recovery mode的操作说明,最终成功复原了我的错误操作,让我的Ubuntu系统呈现出问题前的状态。接下来讲我的经历,以供后来者少走弯路。

1 问题出现

由于我最近需要用一台专门的机器跑Ubuntu下面的程序,我就把旁边闲置多年的台式机用上了。两年前我的师弟在上面装了单系统---Ubuntu系统,我就接着他安装的系统使用。但有一个不爽的感觉是,电脑的用户名时师弟的英文名david,我就想把用户名改为我的英文名robert。人都有一个共性是,想让自己的使用的东西处处体现出自己的特色。我也不例外。于是,在Google上面搜索更改用户名的方法,经过比较鉴别,我认为一个比较好的描述该方法的blog为http://my.oschina.net/arvinjones/blog/139480,其中的方法为(摘录):

  1)打开一个终端,输入 sudo su转为root用户。 注意,必须先转为root用户!!! 
  2)gedit /etc/passwd ,找到代表你的那一行,修改用户名为新的用户名。 注意:只修改用户名!后面的全名、目录等不要动! 
  3)gedit /etc/shadow,找到代表你的那一行,修改用户名为新用户名 
  4)gedit /etc/group,你应该发现你的用户名在很多个组中,全部修改! 
  完毕,修改的时候要格外小心,不要打错一个字母。修改完,保存,重启

我就按照该方法的步骤操作。但步骤到为什么,我没严格按照该博客的第1)步方法说的那样操作,我使用的是sudo gedit /etc/passwd命令,也就是说没有转为root用户,而是获取root权限来更改passwd的内容。我顺利完成了第2)步,Terminal下的用户名也变成了robert。可正当我为此沾沾自喜的时候,噩梦开始了。我无论采用什么方法都不能完成3)步的操作,更别提4)了。提示说是密码错误。我就想出来了,改后的名字robert并没有设置上面密码,我就不输任何密码试试,结果任然不成功。我用david的密码不行,用空密码也不行,这可把我难为住了。怎么办?重新启动。重新启动后的用户登录名为david,这证明我修改用户的任务并没有完成,由于3)和4)没有做。情况进一步恶化,我在登录界面的david下输入先前的david密码时,提示密码错误,登录不了。这到底是什么情况?难道我要重新装系统不行?david用户名就这样凭空消失了吗?我只是简简单单的更改了/etc/passwd文件的内容而已

2 求助于Ubuntu系统的recoverymode模式

我就在Google里面上节出现的问题,果然一位也遇到了与我类似的情况,在修改用户名的时候仅仅修改了/etc/passwd中的用户名。他采用Ubuntu系统下的recovery mode解决和复原了他的问题。他的博文地址是http://www.cnblogs.com/strider/articles/2018648.html。更改用户名的出发点虽然不同,但最后出现的问题类似。

我就重新启动Ubuntu就入Recoverymode(关于如何重新启动后进入Recovery mode,请参考https://wiki.ubuntu.com/RecoveryMode),在该模式下就运行在root用户下面,于是我就迫不及待地要将/etc/passwd文件改回原来的样子,即将robert改回david。我利用的是vi编辑器,调用该编辑器的方法如下:

$vi /etc/passwd

注意,vi默认进入的模式是default模式,这是你可以利用上下左右箭头按钮将光标转移到你要修改的字符下面,我将光标移动到了robert单词下的r下面;在默认模式下,按x即可删除相应的字符,我通过该按钮删除了robert;接下来需要插入字符,在默认模式下,你输入i就会进入编辑模式,i表示的是在当前字符的前面插入新的字符,于是我就在原来robert的地方插入了david,将文件内容复原到问题前的状态;最后,按esc见退出到命令模式,按shift+:进入到最底端,输入wq!,表示保存更改并退出。

可是,terminal提示说,/etc/passwd是readonly,我无权进行更改。

3 借助先前建立的另外一个用户登录

我无语了,在实在没有办法的情况下,我请教了梁师弟,问他会不会使用Ubuntu系统,他说不会,他给推荐了坐在他旁边赖师弟,让他来帮我。他整了半天,各种方法都试了,还是不成功。他问我是否还有其他用户名可以登录,我说有。我留了一手,就是为了防止出现这种情况的,我在做更改用户事前,就新建了一个用户chgzhi,就是以防万一。

顺利进入Ubuntu,利用chgzhi用户名。于是师弟和我就试着在用户名为chgzhi的terminal下来更改/etc/passwd文件,我们的命令是这样的:

chgzhixxxx$sudo gedit /etc/passwd

提示输入密码,输入密码后,提示密码错误。我所记忆的所有关于Ubuntu系统的密码都试了一遍,还是提示密码错误。我泪崩了,师弟也蒙了。师弟说,他也没办法了,就离开了。我不甘心,继续寻找解决方案。

4 认真阅读Recovery mode介绍,问题解决

我在想是不是使用recoverymode上面没到位。于是重新认真阅读https://wiki.ubuntu.com/RecoveryMode中的介绍,我找到了这样一句话:

  The root partition is mounted read-only.To mount it read/write, enter the command

   mount -o remount,rw/

我安装上面的描述,授予recoverymode下root用户以读写权限。最终问题顺利解决。

5 总结

通过上面的经历,我认为,在Ubuntu下面最后学会一种编辑器,例如vi。在Recovery mode的情况下,它能够帮助你编辑和修改你曾经操作错误的文件。而gedit之类的图形化的编辑器在recovery mode下是不会起作用的。还有就是,在搜索到相关的知识介绍时,最好认真的阅读,而不要浅尝辄止,就像我没有认真阅读recovery mode 介绍那样。还有网络上blog的介绍的解决方案介绍比较简略,它们本身并不是self-contained,可能会漏掉背景知识,最好在借鉴它们时自己多动动脑筋。

这篇关于更改Ubuntu用户名带来的一次惊心动魄的经历的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/176748

相关文章

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

PyCharm如何更改缓存位置

《PyCharm如何更改缓存位置》:本文主要介绍PyCharm如何更改缓存位置的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm更改缓存位置1.打开PyCharm的安装编程目录2.将config、sjsystem、plugins和log的路径

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA