1. 用户及用户组存在的意义
1)用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有两个资源配合
1.身份 account
2.授权
author
3.认证
auth
3A
机制,
3A
机制组成系统中最底层的安全架构
2)用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
2.用户及用户组在系统中的存在方式
电脑对数字敏感
id
人类对字符串敏感 名称
id
<------->
名称 必须要记录到文件当中用户才能存在
用户就是
/
etc
/
passwd
文件中的一行字符
用户组存在的方式就是
/
etc
/
group
文件中的一行字符
3.用户切换
1
)
用户查看
*
whomai ##
查看当前用户
*
id ##
查看用户
id
信息
-
u ##
查看用户的用户
id
-
g ##
查看用户主组
id
-
G ##
查看用户所有的组的
id
-
n ##
显示名称
2
)
用户切换
su
-
username
#
切换用户环境
username
##
如果
root
---->
commonuser (箭头为“对······操作”的意思)
不需要后者密码
##commonuser
---->
root
需要密码
##commonuser
---->
commonuser
需要密码
#
#注意:在做用户切换时当使用完毕用户身份及时退出
#不要在一个shell中反复执行su命令
#在一个shell中反复执行su命令会导致环境错乱
4.用户涉及到的系统配置文件
/
etc
/
passwd ##
用户身份信息文件
#用户名称:用户密码:用户id:用户主组id:用户说明:用户家 目录:用户默认shell
/
etc
/
group ##
组身份信息文件
#组名称:组密码:组id:组的附加成员
/
etc
/
skel
/.*
##
用户环境配置文件模板
/
etc
/
shadow
##
用户认证信息文件
/
home
/
username
##
用户家目录
5.用户和用户组建立及删除
监控用户建立的命令
watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /
home"
useradd username ##
用户建立
-
u id username ##uid id:
2
**
16
=
0
-
65535 (id全是数字)
##
0
表示超级用户
##
1
-
200
系统预留
id
##
201
-
999
系统用户
##
1000
-
60000
用户级用户
##/etc/login.defs 记录用户建立的默认规则
-
g id username ##
主组
id
-
G id username ##
附加组
id
-
d dir username ##
指定用户家目录
-
c word username ##
指定用户说明
-
s shell username ##
指定用
shell
userdel
-
r username ##
用户删除
-
r
删除用户的系统配置文件
groupadd groupname ##
组建立
-
g id groupname ##
指定组名称
groupdel groupname ##
组删除
6.用户和用户组的信息管理
usermod
-
l #
更改用户名称
-
u #
更改用户
id(uid)
-
g #
更改主组
id(gid)
-
G #
更改用户附加组身份
-
aG #
添加用户附加组身份
-
c #
更改用户说明
-
d #
更改家目录指向
-
md #
更改家目录指向同时更改家目录名称
-
s #
更改默认
shell
groupmod
-
g ##
更改用户组
id
7.用户认证信息管理
#
1.
用户名称
passwd
-
S lee ##
查看密码状态
#
2.
用户加密字符
#
更改密码
passwd lee ##
只有
root
可以执行
“echo
123
|
passwd
--
stdin
lee”
passwd
##
普通用户改密码
Changing password
for
user lee.
Current password
:
#
输入原始密码
New password
:
##
输入新密码(
8
位以上无序数字
+
无序字母组合)
Retype new password
:
##
重复输入
passwd
:
all authentication tokens updated successfully.
#
冻结认证
passwd
-
l lee ##
冻结账号认证 (冻结 lock)
passwd
-
u lee ##
解锁账号认证 (解冻 unlock)
#
密码删除
passwd
-
d lee
#
密码使用天数
*
从
1970
-
1
-
1
算其到今天的时间
passwd
-
e
lee
##
修改默认使用时间为
0h
chage
-
d
0
lee
##
账号必须改密码才能登陆系统
#
密码最短有效期
passwd
-
n
1
lee
##lee
在
1
天内不能改密码
chage
-
m
1
lee
#
密码最长有效期
passwd
-
x
40
lee ##40
天内
lee
用户必须更新密码否则会被冻结
chage
-
M
30
lee
#
密码过期警告
passwd
-
w
2
lee
##
账号过期前警告时间
chage
-
W
1
lee
#
认证非活跃天数
passwd
-
i 2
lee
##
账号认证最大时间超过后还能用多久
8.用户权力下放
#在系统中普通用户时,无法执行系统管理命令
#如果需要普通用户执行管理动作那么需要
#root用户来进行授权
普通用户授权方式 "sudo" ##可以使普通用户使用指定的用户身份运行命令
普通用户无法执行超级用户命令
![](https://img-blog.csdnimg.cn/2020041712383584.png)
可用“visudo”授权(打开的是 /etc/sudoers 文件,若不使用命令打开这个文件,编辑是存在语法错误的)
打开后:set nu 标注文件行号如下
![](https://img-blog.csdnimg.cn/20200417124620744.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQzNzgwMQ==,size_16,color_FFFFFF,t_70)
使用hostname和which命令分别获取主机名域名信息、useradd程序所在目录信息
![](https://img-blog.csdnimg.cn/20200417130152819.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQzNzgwMQ==,size_16,color_FFFFFF,t_70)
在root用户下的sudoers文件添加如下用户授权dou localhost.localdomain =(root) /usr/sbin/useradd
即dou(用户)在主机localhost.localdomain下时,能以超级用户身份执行useradd(命令)
![](https://img-blog.csdnimg.cn/20200417131311723.png)
若要授权多个命令,命令的目录要以“ , ”隔开
#若要该命令免密执行,命令的目录 前 应加上 NOPASSWD:
练习题
在系统中完成以下用户操作
1.建立用户组shengchan,caiwu,jishu并满足以下i要求
*shengchan组id为8000
*caiwu组id为8001
*jishu组id为8002
![](https://img-blog.csdnimg.cn/20200417143535461.png)
2.建立westos,linux,lee,westosadmin等用户完成以下要求
*westos用户的附加组为shengchan和jishu
![](https://img-blog.csdnimg.cn/20200417144430157.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQzNzgwMQ==,size_16,color_FFFFFF,t_70)
useradd执行过后会报错
用户westos已经存在,需要用usermod -aG指定第二个附加组
*lee的主组为caiwu附加组为jishu,lee的uid和gid必须一致
![](https://img-blog.csdnimg.cn/20200417150653696.png)
![](https://img-blog.csdnimg.cn/20200417150733454.png)
*linux为系统账号不能直接被操作者使用
![](https://img-blog.csdnimg.cn/20200417152825555.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQzNzgwMQ==,size_16,color_FFFFFF,t_70)
建立系统用户时,不建议建立在/home目录下,应加入-M指令
![](https://img-blog.csdnimg.cn/20200417153032436.png)
*westosadmin不属于以上三个部门,但是可以在系统中自由地管理用户
![](https://img-blog.csdnimg.cn/20200417153218991.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQzNzgwMQ==,size_16,color_FFFFFF,t_70)
3.
*以上用户密码均为westos,并要求用户首次登录时强制修改密码
*设定以上用户密码必须在30天内修改,并在过期前2天发出警告
tail -n 5 /etc/passwd /etc
tail -n 5 /etc/group
passwd -S linux
chage
-
I 1
lee
#
账号认证到期时间
chage
-
E "
2020
-
05
-
11
" ##
到
2020
-
5
-
11
这天账号会被冻结
#未启用功能