1. 用户及用户组存在的意义
1)用户存在的意义
系统资源是有限的,如何合理分配系统资源? 在这个问题解决时,必须要有两个资源来配合
①.
身份
account
②.
授权 author
③.
认证 auth (authentication)
3A
机制,
3A
机制组成系统中最底层的安全架构
2)用户组存在意义
用户组是一个逻辑容器 , 对用户进行归类和统一授权
2. 用户及用户组在系统中的存在方式
电脑对数字敏感 id
人类对字符串敏感 名称
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 ##用户建立
useradd 用法
-
u id username ##uid 2**16=0-65535 (2的16次方)
##
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 username #更改用户id
-
g id username #更改主组id(初始组id)
-
G id username #更改用户附加组身份
-
aG id username #添加用户附加组身份
-
c “word” username #更改用户说明
-
d dir username #更改家目录指向(不会更改真实目录的名字)
-
md dir username #更改家目录指向同时更改家目录名称
-
s /dir username #更改默认shell
-L #冻结账号
-G #解锁
groupmod
-
g ##更改用户组id
7.用户认证信息管理
cat /etc/shadow #在管理文件里查看认证信息
监控命令
监控命令的运行
passwd
1 2 3 4 5 6 7 8 9
#1.用户名称
passwd
-
S lee ##查看密码状态
#2.用户加密字符
passwd lee ##更改lee密码
(只有root可以执行)
“echo
123
|
passwd
--
stdin lee”
#超级用户也可用此命令更改用户密码(密码改为123)
passwd 普通用户改密码
Changing password
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 #密码删除 (密码为空,点一下就可进入)
#3.密码使用天数
*
从
1970
-
1
-
1
算其到今天的时间
passwd
-
e
lee ##修改默认使用时间为0,重新登陆需更改一次密码才能进入
chage
-
d
0
lee ##账号必须改密码才能登陆系统
#4.密码最短有效期
passwd
-
n
1
lee ##lee在1天内不能改密码
chage -m 0 lee ##效果相同(lee在0天内不能改密码)
#5.密码最长有效期
passwd
-
x
40
lee ##40天内
lee
用户必须更新密码否则会被冻结
chage
-
M
30
lee ##效果相同(30天内
lee
用户必须更新密码否则会被冻结)
#6.密码过期警告
passwd
-
w
2
lee ##账号过期前警告时间2天
chage -W 1 lee ##效果相同 (账号过期前警告时间1天)
#7.认证非活跃天数
passwd
-
i 2
lee ##账号认证最大时间超过后还能用2天(帐号过期之后还能用这个账号2天)
chage
-I
1
lee ##效果相同 ( 大写的i )
#8.账号认证到期时间
chage
-
E "
2020
-
05
-
11
" ##
到
2020
-
5
-
11
这天账号会立即过期,被冻结
#
9.
未启用功能
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
测试:
su
-
lee
sudo useradd westostest ##
在
lee
第一次使用
sudo
命令时需要输入
lee
密码
exit #
退出
lee
su
-
westos
sudo userdel
-
r westostest ##westos
可以免密执行userdel 命令