用户及用户组管理

本节所述内容:

用户和组的相关配置文件

管理用户和组           

       进入单用户模式找回root身份

一、用户和组的相关配置文件

1.用户的分类

(1)根据帐号的位置:本地帐号、远程(域)帐号、LDAP,NIS

(2)根据帐号的功能:

超级用户即root用户,UID为0;

普通用户分为系统用户,UID为1-499;

                   本地用户,UID为500+ 

2.组的分类

(1)根据帐号的位置:本地组、远程(域)组。 LDAP,NIS,

(2)根据帐号的功能:

 超级用户组即root用户组,UID为0

   普通用户组分为系统用户组,UID为1-499

           本地用户组,UID为500+ 

 注意:* * *每一个用户都有一个同名的组***

3.用户和组的配置信息

 · 系统用户和组的相关配置文件     

 


帐号信息

密码信息

用户

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

 

3.1用户帐号信息 /etc/passwd 每个字段的作用:

例如:root:x:0:0:root:/root:/bin/bash

用户名 : 密码占位符 : UID : GID  : 用户描述 : 用户主目录(bash中"~"代表哪个) : 登录后使用的shell

wKiom1Y6Jn6BMHJGAADHPDX15DM297.jpg

· passwd中伪用户(了解)

/etc/passwd文件中常见的伪用户

 

伪  用  户

含     义

nobody

NFS使用

 

#源码安装nginx,运行nginx web服务器默认使用nobody用户

· 查看系统中,支持shell的类型

[root@xuegod163 ~]# cat  /etc/shells   #cat是用来查看文本内容的命令
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[root@xuegod163 ~]# rpm  -ivh  /mnt/Packages/zsh-4.3.10-7.el6.x86_64.rpm

 

#可以用rpm命令和-ivh参数安装zsh,之后再cat /etc/shells一下,发现多出一个zsh

 

3.2 用户密码信息 /etc/shadow每个字段的含义:

例如:

root:$6$.BTyNB8Q397zR.KY$412……M8ZHWiidd/:16274: 0 : 99999 : 7 :   :   :

wKiom1Y6J2mDmI-tAAGgxtKF_Oc621.jpg

 

 

 

3.3 用户组信息 /etc/group配置文件结构

[root@xuegod163 ~]# grep root /etc/group  #用grep过滤/etc/group下root的内容

root:x:0:root

wKioL1Y6LNrB4jBoAABqfFA__9I580.jpg

二、管理用户和组

1 添加用户帐号相关命令1

1.1添加用户

l   语法:useradd  username(用户名)

参数:-u---UID    -d---主目录   -g---起始组   -G---附加组  -s---使用的shell

例子:

[root@xuegod163 ~]# useradd xubin     [root@xuegod163 ~]# tail -1  /etc/passwd    #用tail命令查看用户账号信息的最后一行内容xubin:x:501:501::/home/xubin:/bin/bash       [root@xuegod163 ~]# useradd -u 2015  kaige  #创建kaige用户的uid为2012[root@xuegod163 ~]# id kaige                 #id+用户名查看用户的iduid=2015(kaige) gid=2015(kaige) groups=2015(kaige)[root@xuegod163 ~]# useradd -d /tmp/benpao benpao #创建奔跑用户的主目录为/tmp/benpao,且该目录会被自动创建

  注意: useradd 或adduser命令都可用于创建用户

 

1.2设置用户密码的命令

[root@xuegod163 ~]# passwd                      #默认修改的是当前登录的用户
Changing password for user root.
New password: 123456                            #设置密码
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password: 123456                     #确认密码
passwd: all authentication tokens updated successfully.

如果想非交互进行设置密码,可以使用echo追加命令,如:

[root@xuegod163 ~]# echo 123456  |   passwd  --stdin  youyou
Changing password for user youyou.
passwd: all authentication tokens updated successfully.

 

如何查看当前登录系统的用户,可以通过whoami来查看

[root@xuegod163 ~]# whoami    
root

假如想修改指定用户的密码,则在passwd后面加上用户名即可,如

[root@xuegod163 ~]# passwd alan                 #修改指定用户的密码
Changing password for user alan.
New password: 
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.

当然,还可以通过导入文本内容来设置密码,通过vim a.txt写入密码123456后,通过以下命令给youyou用户设置密码123456,也是可以的(此处了解即可)

[root@xuegod163 ~]# passwd  --stdin  youyou  < a.txt
Changing password for user youyou.
passwd: all authentication tokens updated successfully.

 

Linux用户密码加密:md5

123456  -> sha512   -> CFnSYSQg8CYOAf5

8748912345659798 -> sha512   -> (随机值)CFnSYSQg8CYOAf5

验证:

123456  +随机值 -> sha512  -> CFnSYSQg8CYOAf5

 

2 管理用户和组信息

2.1修改用户信息

l   语法:usermod username

参数:-u---UID  -g---起始组  -G---附加组  -d---主目录  -s---登录shell

[root@xuegod163 ~]# usermod -u 2222  xubin    #修改用户xubin的UID为2222
[root@xuegod163 ~]# usermod -g 2015  xubin    #修改用户xunbin的起始组为2015
[root@xuegod163 ~]# id xubin
uid=2222(xubin) gid=2015(kaige) groups=2015(kaige)
[root@xuegod163 ~]# usermod -G 2016 xubin     #修改用户xunbin的附加组为2016
[root@xuegod163 ~]# id xubin                    #查看用户xunbin的id信息
uid=2222(xubin) gid=2015(kaige) groups=2015(kaige),2016(benpao)
[root@xuegod163 ~]# usermod -d /tmp/xubin  xubin

 

 

2.2删除用户

l   语法:userdel username   

参数:-r 主目录一起删除

[root@xuegod163 ~]# userdel -r kaige 
[root@xuegod163 ~]# ls /home/
alan  linjhon  xubin  youyou

2.3添加组

l   语法:groupadd groupname

[root@xuegod163 ~]# groupadd heliu
[root@xuegod163 ~]# grep  heliu  /etc/group  #用grep过滤/etc/group组配置文件下heliu内容
heliu:x:2019:

2.4删除组

l   语法:groupdel groupname

[root@xuegod163 ~]# groupdel  heliu

 

2.5控制用户规则的文件

[root@xuegod163 ~]# vim /etc/default/useradd
HOME=/home   #哪个目录作为用户主目录存放目录。如果你不想让用户家目录在/home下,可以修改这个地方。
SHELL=/bin/bash  #默认shell使用哪个
SKEL=/etc/skel         #模板目录

解决模板文件被删之后显示不正常的问题

[root@xuegod163 alan]# ls -a     #显示该目录下的隐藏文件
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla  .zshrc
[root@xuegod163 alan]# rm -rf .bash*  #删除包含.bash的所有文件或目录
[root@xuegod163 ~]# su - alan         #切换到alan用户
-bash-4.1$                             #提示符显示不正常

 

误删之后如何恢复呢?不用怕,接下来就告诉你如何解决

[root@xuegod163 alan]# cd  /etc/skel/     #注意这时候已经退出alan用户
[root@xuegod163 skel]# ls -a               #查看/etc/skel目录下的隐藏文件
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla  .zshrc
[root@xuegod163 skel]# cp .bash*  /home/alan/    #把文件copy到/home/alan/目录下
[root@xuegod163 skel]# chown  alan:alan  /home/alan/.bash* #修改拥有者和所属组权限

这时候已经恢复完成了,再次切换到alan用户,发现一切正常了

[root@xuegod163 ~]# su – alan
[alan@xuegod163 ~]$

2.6查看用户信息相关命令

[root@xuegod63 shen]# id shen
uid=0(root) gid=0(root) groups=0(root)
[root@xuegod63 shen]# whoami 
root
[root@xuegod63 shen]# w21:30:20 up  1:13,  3 users,  load average: 0.00, 0.00, 0.01
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     :0               07Nov14 77days  1:27   1:27  /usr/bin
root     pts/0    :0.0             12Nov14  2:30   0.39s  0.39s /bin/bas
root     pts/1    :0.0             20:57    0.00s  0.46s  0.06s w
[root@xuegod63 shen]# who
root     tty1         2014-11-07 19:51 (:0)
root     pts/0        2014-11-12 17:49 (:0.0)
root     pts/1        2015-01-23 20:57 (:0.0)
[root@xuegod163 ~]# finger alan
Login: alan                            Name: 
Directory: /home/alan               Shell: /bin/bash
Never logged in.
No mail.
No Plan.

  温馨提示如没有安装finger软件包,则无法使用该命令,安装该finger的命令为:

 
[root@xuegod163 ~]# rpm -ivh /mnt/Packages/finger-0.17-39.el6.x86_64.rpm

     总结:查看用户相关信息的命令 id 、w 、who 、whoami 、finger

                                                              

三 进入单用户模式找回root身份

如果忘记了root密码,不用慌,这里将会告诉你怎么找回root身份,就是标题所说的进入单用户模式,修改root密码,再重新启动,就把问题解决了。

首先,开启虚拟机,在系统启动之前,按下任意键,如Enter键,进入单用户模式,如下图所示:

wKioL1Y6LiWC0HFpAADSlxvbJl4775.jpg

看到上面这个画面,如提示所说,按下e 即可

 wKiom1Y6LiuTSAooAAEVrKyBnc8410.jpg

 

此时,同样,按下e

wKioL1Y6LrmCbxk5AACmMhKWYfQ195.jpg

此处,输入1,再回车

wKiom1Y6Lq3Bma0iAAEIADzyRcU382.jpg

 这时,选择按上下键移动到kernel那一行,再按b启动

 wKioL1Y6LxzTgfhPAABFn3Jc-xw876.jpg

 这时候,已经进入单用户模式,对密码进行修改

 

wKiom1Y6LzzCVobqAACbdFq-WBA611.jpg

输入passwd命令,按提示操作,更改密码即可,如上图所示

 

如果希望再次启动的时候,不需要输入密码,便可登录,也可以通过vim /etc/passwd打开passwd把第一行root用户密码x这一项取消掉。

 

wKioL1Y6L72TwvECAAKWTT4Je3k706.jpg

修改完成之后,reboot重启系统即可。

 

 

 

学神-IT-教育51cto技术交流群:468845589  快来上我们公开课吧!

        学神MK老师:1273815479

        学神ZY老师:3054384936

 

                                  本文由学神-IT-教育1508班VIP学员学神-IT-好心情同学整理提供