zoukankan      html  css  js  c++  java
  • Ubuntu中彻底修改用户名及密码

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

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

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

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

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

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

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

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

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

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

    # mv /home/sailer /home/sailor

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

    # vim /etc/shadow
    ... ...
    sailer:$6$tDOxH2en$Neyhp/0oRtJk7kjxX.L3OAkcVIiyxNt8P/rsoo5aeTMQbjG5rSNwsXs3BR15qJ6mNedU47h2YFepMAVG9uMyx0:17035:0:99999:7:::

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

    # vim /etc/group
    ... ...
    sudo:x:27:sailer
    ... ...
    plugdev:x:46:sailer
    ... ...
    sailer:x:1000:

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

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

    # vim /etc/group
    ... ...
    sudo:x:27:sailor
    ... ...
    plugdev:x:46:sailor
    ... ...
    sailor:x:1000:

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

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

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

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

  • 相关阅读:
    Javascript异步编程的4种方法
    同步编程和异步编程
    关于js 异步回调的一些方法
    array的方法 没记住的
    阮一峰关于reduce 和transduce的博客
    CSS开发小技巧
    提升自己的一个网址
    asm.js 和 Emscripten 入门教程
    Koa -- 基于 Node.js 平台的下一代 web 开发框架
    C#中使用handsonetable的一个例子
  • 原文地址:https://www.cnblogs.com/weiyouqing/p/7841091.html
Copyright © 2011-2022 走看看