在安装系统的时候,经常会无意识的随便起个用户名,后面如果发现该用户名不好或因为环境需要须重起个用户名,经过查找资料和亲自测试发现有两种方案可选:手动修改和使用usermod等命令自动修改。

方案一:手动修改各个关联用户文件

  1. 以root身份登录

    系统文件的修改需要root权限,这里不管是原root用户登录还是普通用户切换到root下都可以,只要有修改权限就行

  2. 修改/etc/passwd这个文件中的用户名部分、用户组部分和主目录部分

    如我本来的用户名为hadoop,现在想修改为seed,则要修改下面部分:

    注意用户组部分为1000:1000中的第二个1000(组标识号),这里没有修改,因为不需要新增加组而只是把原来的组名改掉即可(组标识号不变),见3。

    修改/etc/passwd文件

  3. 修改/etc/group这个文件中的组名部分(组标识号不变),同时也将/etc/gshadow改写一下 

    /etc/group文件修改

    /etc/gshadow文件修改

  4. 修改/etc/shadow文件中的用户名部分,这个不改将无法登录系统,这步非常重要。
  5. 修改/home/olduser为/home/newuser,同时注意一定要修改其所属的用户和用户组,这个很关键。

    注意:这步使用命令mv hadoop seed修改后,其下所有的文件所属用户和用户组都自动修改好,不需要自己手动用chown -R修改。

    上面这5个步骤缺一不可,操作失误很可能导致无法登入系统,认真完成上面的5个步骤重启系统后即可修改成功

  6. 修改sudoers文件

    经过上述步骤后,一般人都认为大功告成了,而网上资料也最多只有上面几个步骤,其实还有一点很重要,以后你在使用sudo时会提示"xxx is not in the sudoers file. This incident will be reported.其中xxx是你的用户名,也就是你的用户名没有权限使用sudo,这主要是因为sudoers文件里记录的还是原来的用户名,需要更新过来,步骤如下:

    (1)进入超级用户模式。也就是输入"su -"

    注意这里有"-" ,这和su是不同的,在用命令”su”的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量,用”su -”命令将环境变量也一起带过去,就象和root登录一样。

    (2)添加文件的写权限。

    chmod u+w /etc/sudoers

    (3)编辑/etc/sudoers文件。

    vi /etc/sudoers

    进入编辑模式,找到这一 行:

    root ALL=(ALL) ALL

    在它的下面添加:

    hadoop ALL=(ALL) ALL

    这里的hadoop是你的新用户名,然后保存退出。

    (4)撤销文件的写权限

    chmod u-w /etc/sudoers

方案二:使用命令usermod修改

首先介绍下usermod命令的基本用法:

usermod [-LU][-c <备注>][-d <登入目录>[-m]][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u [-o]] [用户帐号]

描述:

usermod命令会参照你命令列上指定的部分修改系统帐号档。下列为usermod可选用的参数。

-c <备注>

更新/etc/passwd中的注解栏。

-d <登入目录>

更新使用者新的登入目录(用户目录)。如果给定-m选项,使用者旧目录会搬到新的目录去,如旧目录不存在则建个新的。

-e <有效期限>

加上使用者帐号停止日期。日期格式为MM/DD/YY.

-f <缓冲天数>

帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1。

-g <群组>

更新使用者新的起始登入群组。群组名须已存在。群组ID必须参照既有的的群组。群组ID预设值为1。

-G <群组>

定义使用者为一堆groups的成员。群组名同-g选项的限制。如果使用者现在的群组不再此列,则将使用者由该群组中移除。

-l <帐号名称>

变更使用者login时的名称为login_name,即修改用户登录名。其于不变。特别是,使用者目录名应该也会跟着更动成新的登入名。

-s

指定新登入shell。如此栏留白,系统将选用系统预设shell。

-u

使用者ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值。预设为最小不得小于99而逐次增加。0~99传统上是保留给系统帐号使用。使用者目录树下所有的档案目录其userID会自动改变。放在使用者目录外的档案则要自行手动更动。

警告

usermod不允许你改变正在线上的使用者帐号名称。当usermod用来改变userID,必须确认这名user没在电脑上执行任何程序,否则会报“usermod: user xxx is currently logged in”错误。因此必须root用户登录或者其他用户登录然后切换到root身份,而不能在当前用户下切换至root进行修改。

修改用户名步骤如下:以原来的用户名seed修改为hadoop用户名为例:

  1. 以root身份登录
  2. usermod -l hadoop seed

    该命令相当于做了两件事:

    (1)将/etc/passwd下的用户名栏从seed修改为hadoop,其他部分不变

    (2)将/etc/shadow下的用户名栏从seed修改为hadoop,其他部分不变

  3. usermod -c hadoop hadoop

    相当于将/etc/passwd下的注解栏修改为hadoop,其他部分不变

  4. groupmod -n hadoop seed

    将原来的用户组seed修改为hadoop,只修改组名,组标识号不变,相当于修改了文件/etc/group和/etc/gshadow

  5. usermod -md /home/hadoop hadoop

    相当于做了两件事:

    (1)将/etc/passwd下的登入目录栏修改为/home/hadoop,其他部分不变

    (2)将原来的用户目录/home/seed修改为新的用户目录/home/hadoop

    这些步骤可以说与方案一的一一对应,缺一不可。方案二简单一点,但方案一更能让我们理解这背后的运作机制。

Linux系统中修改用户名的两种方案整理相关推荐

  1. linux系统更改名字,Linux系统中修改用户名的两种方案整理

    在安装系统的时候,经常会无意识的随便起个用户名,后面如果发现该用户名不好或因为环境需要须重起个用户名,经过查找资料和亲自测试发现有两种方案可选:手动修改和使用usermod等命令自动修改. 方案一:手 ...

  2. 在Linux系统中存储设备的两种表示方法

    作者:北南南北 来自:LinuxSir.Org 摘要: 硬盘和硬盘分区在Linux都表示为设备,按我们通俗的说法来说,就是怎么来表示或描述硬盘和或硬盘分区,但这种描述应该是科学和具体的:比如IDE硬盘 ...

  3. linux系统下经常使用的两种桌面环境,12种最佳Linux桌面环境 | MOS86

    您可以从一英里远处分辨出屏幕快照是Windows还是Mac,这是因为两种商业操作系统都只有一个桌面环境. Windows具有开始菜单和任务栏,而macOS具有其标志性的Dock和菜单栏. 立即解锁&q ...

  4. 审计 Linux 系统的操作行为的 5 种方案对比

    很多时候我们为了安全审计或者故障跟踪排错,可能会记录分析主机系统的操作行为.比如在系统中新增了一个用户,修改了一个文件名,或者执行了一些命令等等,理论上记录的越详细, 越有利于审计和排错的目的.不过过 ...

  5. 更改Linux系统的主机名(hostname)两种实用的方法

    查看当前的主机名 首先我们使用hostname命令来查看当前的主机名. hostname 永久修改 hostnamectl set-hostname "修改的名字" hostnam ...

  6. linux系统安装teamview,在Ubuntu 18.04系统上安装TeamViewer的两种方法

    本文介绍在Ubuntu 18.04 LTS Bionic Beaver系统上安装TeamViewer的两种方法,第一种方法使用图形用户界面安装,第二种使用终端命令行安装,同时可以先参考在Ubuntu ...

  7. 进Linux系统单用户模式,Linux进入单用户模式的两种方法

    单用户模式的作用 在使用Linux系统中,维护人员经常会碰到一个问题,就是在拥有root账号权限和密码的用户中,总是会出现忘记root密码的情况. 遇到这种情况,一般情况下,维护人员就会通过最常用的方 ...

  8. c语言 linux系统 delay,Linux下实现秒级定时任务的两种方案

    Linux下实现秒级定时任务的两种方案(Crontab 每秒运行): 第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间. while true ;do command s ...

  9. centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法

    Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...

最新文章

  1. 别说,Cerebro还真好用!老板再也不用担心ES集群了
  2. 老李案例分享:Weblogic性能优化案例
  3. Linux系统编程——基于文件描述符的文件操作(1)
  4. ACL 2016 | CopyNet 和 Pointer Softmax
  5. django权限管理
  6. RabbitMQ死信实战(生产者)
  7. Git学习总结(4)——我的Git忽略文件与忽略文件提交规则和配置总结
  8. PTA5-1 最大子列和问题
  9. 目录启动CXF启动报告LinkageError异常以及Java的endorsed机制
  10. C++ std::move/std::forward/完美转发
  11. python快速入门神器 知乎_Python爬虫偷懒神器!快速一键生成Python爬虫请求头
  12. 7时过2小时是几时_小姐姐花1万7租了一个2小时男友,全程上演偶像剧......
  13. Moore-Penrose广义逆矩阵
  14. Simple Torrent:一个支持边下边播、无版权限制和自动上传的BT离线下载程序
  15. Linux 启动项管理
  16. AKM AKM-35-4-01-15X-10
  17. Java基于springboot+vue+elementUI高速公路收费管理系统设计与实现
  18. 培养逻辑思维的app_逻辑思维学生端下载-逻辑思维学生端app下载1.1.22安卓版-西西软件下载...
  19. 【python】Dpark源码分析
  20. 【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(九)

热门文章

  1. tensorflow C++图像分割/目标检测从tensor输出图像
  2. python 银行数据_Python银行数据分析之--民生银行数据转换
  3. 转载:使用USBASP给Arduino烧写bootloader教程
  4. uniapp中使用canvas 画海报总结
  5. 可能是CAP理论的最好解释
  6. mysql中的affected_rows
  7. 电脑总蓝屏,可能是什么原因?怎么解决?
  8. 国二湖南国家二级计算机成绩查询,湖南2018年第二次国家计算机等级考试成绩查询时间...
  9. 【180930】坦克大战小游戏源码
  10. 边界扫描的测试原理及九大指令(zz)