方式一:从recovery模式进入更改用户名,解决只有一个用户但我就爱用命令改的问题
前提知识:1.了解/etc/passed文件所描述的用户信息含义,比如:代表分隔信息;/home/ycp代表用户目录
2.了解usermod命令的使用,比如-c代表更改用户描述信息(登录系统时显示的名称即描述信息) -l 表示用户名(可以和描述信息不一致)-d表示用户目录等等,使用man usermod可详细查询使用方法
第一步:进入recovery模式
1.重启长按shift进入grub菜单,要提前一点按shift
2.上下键选中图recovery mode,不要按enter,按e,表示编辑启动参数,出现如下图
3.左右键定位至ro recovery nomodeser改为rw single init=/bin/bash如下所示
4.按F10进入root单用户模式如下,在此模式下方可更改文件和文件夹,即可自由更改用户名了。上图ro表示read-only, rw表示可读可写
5.在上图敲入以下命令
a进入/home更改用户文件夹名称:mv ycp topeet
b.更改用户名:usermod -l ycp topeet
c.更改用户描述信息:usermod -c ycp-pc ycp #注意,user的名字在上一个命令中已经由topeet改为了ycp,ycp-pc为登录时的名字
d.更改用户目录:usermod -d /home/ycp ycp
直接重启即可了
6.rw single init=/bin/bash不用改回ro recovery nomodeser,系统自己会恢复为ro recovery nomodeser
7.过程中出现的问题
7.1直接不在recovery模式,即正常界面su - 进入root使用命令usermod -l ycp topeet更改会提示topeet用户已经logged in,即不能更改正在登陆的用户。
因为我的系统除了系统本身的一些伪用户(UID为:1~499,也称为系统保留账号)和root用户外只有一个用户topeet,所以登陆时用的是topeet,造成不能更改,如果有两个用户,用另外一个用户登陆然后可以注销topeet再改其用户名。
只有一个用户情况下,在root下使用pkill -t tty7注销topeet会回到登陆界面,造成改不了,这就是方式一能解决的问题。w命令可查看登陆的有哪些用户
7.2改rw single init=/bin/bash时写成了rw single init=/bash/bin,会造成按F10进不了bash,重启正确填写就行了
7.3 改完用户名就重启,导致正确的密码也进不了,是因为登陆名称还没改,进入再改usermod -c ycp-pc ycp就OK
7.4改完登陆ycp-pc如图一片漆黑,以为改错了哪里,其实是登录选项的问题,如下:虚惊一场
是因为选择了recovery mode,选回ubuntu就好了。
这里的recovery mode和前面的是有区别,还是不能更改用户名如下,因为是以当前用户登陆的,仔细看root的显示状态也是不一样的。
方式二:参考 http://www.jianshu.com/p/11cd3564855c 直接修改以下文件 /方法简便 其实方式一的动作结果就是修改了文件/etc/passwd和/etc/shadow,但没有修改/etc/group、/etc/gshadow,但仍然有效;因为用户ycp的所属GID(组ID)还是1000,没改变,还是属于topeet组,组的名字无关大雅,也可以更改组名。区别就是命令usermod会同时修改/etc/passwd和/etc/shadow,而直接修改文件不会。
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/etc/sudoers #不更改似乎没有影响,用户模式下依然可以用sudo不提示错误,暂时没有出现文中提到的错误。
其实之前就知道这些文件,但没 改过,以为不可修改,因为密码段显示x是加密的。命令passwd ycp可以修改密码。不过也好,了解了进入recovery的方法,或许以后别有他用。走弯路不一定是坏事,而是又多认了一条路到目的地。
方式三:从设置进入更改,太低端,图形化界面,而且只能修改用户名,密码,不能修改所属组GID,用户目录等等,远远不能显示搞linux敲命令的高逼格。图形化界面的结果也是修改了文件。
仅以此记录学习点滴-2017.9.29