用户及用户组管理
本节所述内容:
用户和组的相关配置文件
管理用户和组
进入单用户模式找回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
· 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 : : :
3.3 用户组信息 /etc/group配置文件结构
[root@xuegod163 ~]# grep root /etc/group #用grep过滤/etc/group下root的内容
root:x:0:root
二、管理用户和组
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键,进入单用户模式,如下图所示:
看到上面这个画面,如提示所说,按下e 即可
此时,同样,按下e 键
此处,输入1,再回车
这时,选择按上下键移动到kernel那一行,再按b启动
这时候,已经进入单用户模式,对密码进行修改
输入passwd命令,按提示操作,更改密码即可,如上图所示
如果希望再次启动的时候,不需要输入密码,便可登录,也可以通过vim /etc/passwd打开passwd把第一行root用户密码x这一项取消掉。
修改完成之后,reboot重启系统即可。
学神-IT-教育51cto技术交流群:468845589 快来上我们公开课吧!
学神MK老师:1273815479
学神ZY老师:3054384936
本文由学神-IT-教育1508班VIP学员学神-IT-好心情同学整理提供
转载于:https://blog.51cto.com/xuegodlinux/1709831