[Linux][Ubuntu]Ubuntu修改用户名和密码

因有时会copy别人的linux镜像,为了方便会修改用户名和密码,今天查了下资料,自己尝试了下,记录下来,以防忘记!

修改密码

输入下列命令,并键入旧密码和新密码,即可修改成功
$sudo passwd xxxx
$sudo passwd root

转自:更改ubuntu用户名

修改用户名

方案一(方便快捷)

打开虚拟机,不要登录,使用CTRL+ALT+F1打开一个字符终端用root用户登陆(CTRL+ALT+F7返回操作界面);首先登录当前用户如:sailer,设置root用户密码,命令:exit,sailer用户退出系统,以root用户登陆。

# usermod -l sailor -md /home/sailor sailer
# groupmod -n sailor sailer

方案二(比较繁琐,可以使用)

在vim下,通过输入以下命令,将文件内字符串进行替换,str2替换str1

:%s/str1/str2/

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

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

这个文件每行对应着一个用户,每行由冒号分割为7个字段,其含义分别为:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

例如上面的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:::

这个文件存放了用户的密码(经过加密)还有密码的失效时间等一些信息。最后我们还需要把这个用户加入到若干组中去。打开/etc/group文件:

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

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

改完后是如下效果:

# 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就行了。

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

方案三 (有一些问题)

  1. 查看所属用户组
    登录Ubuntu,在当前用户情况下,查看属于哪些用户组;

    $ groups
    sailer adm cdrom sudo dip plugdev lpadmin sambashare

  2. 删除当前用户
    因当前用户是无法删除自己的,即使sudo也不行。例如:

    $ sudo userdel sailer
    userdel: user sailer is currently used by process 5046

    所以,当前用户必须退出系统,用另一个用户(如root用户)登陆并执行userdel操作。先输入用户密码,在输入两次新密码,修改成功;

    $ sudo passwd

    然后在root下reboot,不要登录,使用CTRL+ALT+F1打开一个字符终端用root用户登陆(CTRL+ALT+F7返回操作界面),然后删除刚才的用户,(用户的主目录删掉/修改文件名):

    $ su

    root# userdel sailer
    1、root# mv /home/sailer /home/sailor
    2、root# rm -rf /home/sailer

  3. 创建新用户
    接着创建新的用户,并为之设定密码

    root# useradd sailor
    root# passwd sailor

  4. 添加用户组
    这时你创建的新用户仅仅会属于用户的私有组,最后我们还需要把这个用户加入到第一步记下来的若干组中去:
    root# usermod -G adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare sailor

猜你喜欢

转载自blog.csdn.net/weixin_40117614/article/details/83072506