转自:http://blog.csdn.net/sailor201211/article/details/52305591

方案二:修改与用户和组相关的配置文件

这种方法更加本质,直接修改与用户和组相关的几个配置文件。其实userdel、useradd、passwd等命令本质上也是修改这几个文件。Linux下没有直接更改用户名的命令工具,或者有这样的工具但我不知道,但即使有这样的工具,其本质也是修改这几个配置文件。

同方案一一样,首先还是查看一下,当前用户属于哪些用户组,并记下来。然后设置root用户密码。接着以root用户身份打开/etc/passwd文件,这个文件设置了当前系统的所有用户相关信息。

$ su -
# vim /etc/passwd
... ...
sailer:x:::sailer,,,:/home/sailer:/bin/bash

这个文件每行对应着一个用户,每行由冒号分割为7个字段,其含义分别为:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

这里我们找到我们需要修改的用户,将该行的用户名更改一下即可,另外把用户的主目录最好也改一下,让主目录与用户名相同(这样符合强迫症患者的习惯)。而用户的uid和gid都无需改动。例如上面的passwd文件我们改成这个样子:

# vim /etc/passwd
... ...
sailor:x:::sailor,,,:/home/sailor:/bin/bash

修改一下用户的主目录的目录名:

# mv /home/sailer /home/sailor

用户的登陆密码其实并不存放在/etc/passwd文件中,而是在/etc/shadow文件中。打开它:

# vim /etc/shadow
... ...
sailer:$$tDOxH2en$Neyhp/0oRtJk7kjxX.L3OAkcVIiyxNt8P/rsoo5aeTMQbjG5rSNwsXs3BR15qJ6mNedU47h2YFepMAVG9uMyx0:::::::

这个文件存放了用户的密码(经过加密)还有密码的失效时间等一些信息。同passwd文件一样,每行对应一个用户,每行以冒号分割为若干字段,其中第一个字段为用户名。找到我们要修改的用户名,直接改之。经过前面两步,其实用户名已经改好了,而密码还是原来的密码,原来的用户的uid和gid也不变。最后我们还需要把这个用户加入到若干组中去。打开/etc/group文件:

# vim /etc/group
... ...
sudo:x::sailer
... ...
plugdev:x::sailer
... ...
sailer:x::

这个文件每行对应一个用户组,其格式为“组名:组密码占位符:组ID:组内用户列表”。另外Linux下有一个私有组概念,即每创建一个用户,系统会自动创建一个与用户同名的组,该组为该用户的主组(或称私有组)。用户除了属于与自己同名的主组外,还会属于其他组,这些组称为用户的附加组。

刚才我们修改了用户名,那么用户所属的私有组的组名也应该一并修改(当然不改也不会有任何问题,私有组和附加组并无实质区别,但我们是强迫症嘛,所以改之),找到要修改的组名sailer,改为sailor。原sailer用户属于若干个附加组中,如sudo组、plugdev组等,我们将这些组的组内成员列表的sailer改为sailor。改完后是如下效果:

# vim /etc/group
... ...
sudo:x::sailor
... ...
plugdev:x::sailor
... ...
sailor:x::

与passwd文件对应一个shadow文件用于存储用户登陆密码类似,group文件也对应一个gshadow文件用于存放用户组的密码。其实用户组密码对于我们这种桌面应用环境来说根本用不着,但作为强迫症患者还是要把系统修改完美。我们打开这个文件看一下:

# vim /etc/gshadow
saned:!::
davfs2:!::
sailer:!::

同样每行对应一个组,格式为:“组名:密码:组管理者:组内用户列表”,其中密码字段为”!”表示没有密码。这里我们只需要将组名sailer改为sailor就行了。

好了,到这里才算大功告成了!

Ubuntu中彻底修改用户名及密码的更多相关文章

  1. oracle中如何修改用户名和密码

    1.以Windows操作系统为例,打开命令提示符,输入命令sqlplus /nolog ,进入oracle控制台,并输入 conn /as sysdba;以DBA角色进入. 2.连接成功后,输入“se ...

  2. Eclipse SVN修改用户名和密码

    问题描述:     Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能.但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的 ...

  3. linux修改用户名和密码

    linux修改用户名和密码 修改root密码:sudo passwd root 修改用户密码(如hadoop) sudo passwd hadoop 修改主机名:sudo vi /etc/hostna ...

  4. centos 7 安装mqtt 修改用户名和密码

    我先新买个Centos 的系统 咱登录呢就用这个软件,主要是方便,可以少安装一些东西 根据自己的系统选择,上面的是32位的. 输入 root 回车 输入密码然后回车  输入的时候什么也不显示 输入 c ...

  5. Myeclipse SVN 修改用户名和密码

    转自:http://blog.csdn.net/chow__zh/article/details/7731497 解决方案: 在Eclipse使用SVN的过程中大多数人往往习惯把访问SVN的用户名密码 ...

  6. mysql 数据库修改用户名和密码

    因为经常修改数据库密码,也找到了几种修改数据库密码的方式,在这里给大家介绍下供大家参考通过navicat 管理数据库客户端来修改数据库密码: 选择数据库 --- 点击导航条的用户  --- 编辑用户 ...

  7. mysql修改用户名和密码

    修改用户名 mysql> use mysql;  选择数据库Database changedmysql> update user set user="dns" wher ...

  8. Ubuntu下添加Samba用户名与密码

    参考: ubuntu下的Samba配置:使每个用户可以用自己的用户名和密码登录自己的home目录 增加samba用户提示Failed to add entry for user Ubuntu可以直接在 ...

  9. git 查看/修改用户名、密码

    用户名和邮箱地址的作用 用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变. 每次commit都会用用户名和邮箱纪录. github的contributions统计就是按邮箱来统计的. ...

随机推荐

  1. cygwin安装apt-cyg

    lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg install apt-cyg /bin

  2. ESXI6.0 时间(时区)显示不一致

    ESXI6.0 时间(时区)显示不一致 来源 http://blog.51cto.com/jdonghong/1957118 近日由于设置ESXI计划任务,无意间发现了esxi服务器客服端时间和系统显 ...

  3. CF 787D Legacy(线段树思想构图+最短路)

    D. Legacy time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

  4. 排序(sortb)

    题目描述 懒得写题目背景了,就不写了. 有一个 $0, 1 \dots n − 1$ 的排列 $p_1, p_2 \dots p_n$,如果 $p_i ⊕ p_j ≤ a$(其中 $⊕$ 为按位异或) ...

  5. java中的Timer

    一个java中用Timer做的简单定时器小程序. package com.test.lx; import java.util.TimerTask; public class TimeTaskTest ...

  6. 无法更新 EntitySet“W_ReceiveData”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 <InsertFunction> 元素。

    无法更新 EntitySet“W_ReceiveData”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作 ...

  7. SQL Server 及 Visual Studio的离线帮助文档

    1>Sql Server帮助文档下载:地址 2>Visual Studion帮助文档下载:地址 3>安装Help Viewer 4>浏览到刚才下载的文件处进行安装 4>设 ...

  8. 64位操作系统安装32位客户端和PL/SQL

    PL/SQ只能使用32位的Oracle客户端.在64位系统下安装了64位的oracle 11g,使用PL/SQL需再安装32位Oracle客户端. 按以下方法试验成功: 1)安装32位的Oracle客 ...

  9. Linux内核中的中断栈与内核栈的补充说明【转】

    转自:http://blog.chinaunix.net/uid-12461657-id-3487463.html 原文地址:Linux内核中的中断栈与内核栈的补充说明 作者:MagicBoy2010 ...

  10. insmod模块加载过程代码分析1【转】

    转自:http://blog.chinaunix.net/uid-27717694-id-3966290.html 一.概述模块是作为ELF对象文件存放在文件系统中的,并通过执行insmod程序链接到 ...