1 用户及用户组存在的意义
1)用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
1.身份 account
2.授权 author
3.认证 auth
##3A机制,3A机制组成系统中最底层的安全架构
2)用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
2.用户及用户组在系统中的存在方式
电脑对数字敏感 id
人类对字符串敏感 名称
id <-------> 名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd文件中的一行字符用户组存在的方式就是/etc/group 文件中的一行字符
密码是 /etc/shadow 文件中的一行字符
3.用户切换
1)用户查看
*whoami ##查看当前用户
id ##查看用户id信息
id -u westos ##查看用户的用户id
id -g westos ##查看用户主组id
id -G westos ##查看用户所有的组的id
id -Gn westos ##显示所有组id的名称
d -gn westos ##显示主组id的名称
id -un westos ##显示用户id的名称
id -u westos ##查看用户的用户id
id -g westos ##查看用户主组id
id -G westos ##查看用户所有的组的id
id -Gn westos ##显示所有组id的名称
d -gn westos ##显示主组id的名称
id -un westos ##显示用户id的名称

注:查看用户id
id 用户名
id -a #查看当前用户id
用户id范围: 0-65535
0: ##Linux超级用户ID
1-999: ##Liunx系统自用ID
1000-65535: ##用户级ID
##以上ID设定规则都被记录在/etc/login.defs
4.用户涉及到的系统配置文件
/etc/passwd ##用户身份信息文件
#用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell
/etc/group
##组身份信息文件
#组名称:组密码:组id:组的附加成员
/etc/skel/.*
##用户环境配置文件模板
/etc/shadow
##用户认证信息文件
/home/username
##用户家目录
/var/spool/mail/username
##用户邮箱文件
注:使用cat查看
5.用户和用户组建立及删除
监控用户建立的命令watch - n 1 "tail - n 4 / etc / passwd / etc / group;echo ======= ;ls - l / home"每秒执行一次
useradd username ##用户建立
-u id username ##uid
2**16=0-65535
##0 表示超级用户
##1-200 系统预留id
##201-999 系统用户
##1000-60000 用户级用户
##/etc/login.defs
记录用户建立的默认规则
-g id username ##主组id
-G id username ##附加组id
-d dir username ##指定用户家目录
-M username ##建立用户时不建立家目录
-c word username ##指定用户说明
-s shell username ##指定用shell
userdel -r username ##用户删除 -r 删除用户的系统配置文件
注:在上边删除用户操作时,监控窗口显示用户组信息并没有被删除,如果此时再建立新用户ssq,会报错说家目录存在,所以我们在删除用户时要用userdel -r ssq,来递归删除ssq的系统配置文件,如下
groupadd groupname ##组建立
-g id groupname ##指定组名称
groupdel groupname ##组删除
6.用户和用户组的信息管理
usermod
-l #更改用户名称
-u #更改用户id
-g #更改主组id
-G #更改用户附加组身份
-aG #添加用户附加组身份
-c #更改用户说明
-d #更改家目录指向
-md #更改家目录指向同时更改家目录名称
-s #更改默认shell
-L #冻结账号
-U #解锁
groupmod -g ##更改用户组id

7.用户认证信息管理
#/etc/shadow 文件内容说明
用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期: 账号非活跃期:账号到期时间:用户自定义(未使用)
#1.用户名称
passwd
-
S lee ##
查看密码状态
#2.用户加密字符
#
更改密码
)
`
passwd lee ##
只有
root
可以执行
“echo
123
|
passwd
--
stdin lee”
passwd ##普通用户改密码
Changing p
assword for user lee.
Current password
:
#
输入原始密码
New password
:
##
输入新密码
(
8
位以上无序数字
+
无序字母组合
)
Retype new password
:
##
重复输入
passwd
:
all authentication tokens updated successfully. #冻结认证
)
passwd
-
l lee ##
冻结账号认证
passwd
-
u lee ##
解锁账号认证
passwd
-
d lee#
密码删除
)

#密码使用天数
*
从
1970
-
1
-
1
算其到今天的时间
passwd
-
e
lee ##修改默认使用时间为0
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 ##账号认证最大时间超过后还能用多久
chage
-
I 1
lee
#账号认证到期时间
chage
-
E "
2022
-12
-
30
" ##到
2022-12-30
这天账号会被冻结
#未启用功能
8.用户权力下放
#
在系统中普通用户时无法执行系统管理命令的
#
如果需要普通用户执行系统管理动作那么需要
#root
用户来进行授权
普通用户授权方式
“sudo”
作用
:
可以使普通用户使用指定的用户身份呢运行命令
授权方法
:
visudo ##此命令作用是编辑
/
etc
/
sudoers
并提供语法检测

在文件的
100
行左右
##
代码规范性
username hostname
=
(newusername) [NOPASSWD
:
]
/
command,
/
command1
#lee用户 在linux.wesots.com主机=(用超级用户身份)执行useradd命令
lee linux.westos.com=(root) /usr/sbin/useradd
#westos用户 在linux.wesots.com 使用超户 免密 执行useradd 和 userdel
westos linux.wesots.com = (root) NOPASSWD: /usr/sbin/useradd, /usr/
sbin/userdel
