1 用户及用户组存在的意义
(1)用户存在的意义
用户:
- 如果要使用系统资源,就必须向系统管理员申请一个账号,然后通过这个账号进入系统。
- 这个账号和用户是同一个账号,通过建立不同属性的用户
- 一方面,可以合理的利用和控制系统资源
- 另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
3A机制:3A机制组成系统中最底层的安全架构
- 身份 account
- 授权 author
- 认证 auth
(2)用户组存在意义
用户组:
- 是具有相同特征用户的逻辑集合。
- 简单来说,有时我们需要让多个用户具有相同的权限,这些用户就具有了和组一样的权限,这就是用户组。
意义:对用户进行归类和统一授权
2.用户及用户组在系统中的存在方式
由于电脑对数字敏感,所以针对电脑的存在方式就是用户和用户组的id
人类对字符串敏感,所以针对人类的存在方式就是用户及用户组的名称
id<-------> 名称
- 必须要记录到文件当中用户才能存在
- 用户就是/etc/passwd文件中的一行字符
- 用户组存在的方式就是/etc/group 文件中的一行字符
3.用户切换
(1)用户查看
- whomai #查看当前用户
- id #查看用户id信息
-u #查看用户的用户id
-g #查看用户主组id
-G #查看用户所有的组的id
-n #显示名称
[root@westoslinux ~]# id #查看用户id信息
[root@westoslinux ~]# id -u #查看用户的用户id
[root@westoslinux ~]# id -g #产看用户的主组id
[root@westoslinux ~]# id -G #查看用户所有的组id
[root@westoslinux ~]# id -nu #显示用户名称
- 用户id范围: 0-65535
0: #Linux超级用户ID
1-999: #Liunx系统自用ID
1000-65535: #用户级ID - 以上ID设定规则都被记录在/etc/login.defs
(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
#用户家目录 - /var/spool/mail/username
#用户邮箱文件
5.用户和用户组建立及删除
-
监控用户建立的命令
watch -n 1 “tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home” -
useradd username #用户建立
-u id username
#uid
#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 删除用户系统配置文件
[root@westoslinux ~]# userdel -r lxy #删除用户lxy
通过监控可以看出:/etc/passwd中已经没有关于lxy的信息了:
-
groupadd groupname
#组建立
-g id groupname
#指定组名称
-
groupdel groupname
#组删除
可以看到删除组用户后监控命令下的famliylee组用户被删除:
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 username #查看密码状态
[root@westoslinux ~]# passwd -S lxywestos #查看
(2)用户加密字符
【1】更改密码
- passwd lxywestos
只有root可以执行 “echo 123 | passwd --stdin lxywestos”
- passwd #普通用户改密码
【2】冻结认证
-
passwd -l lee #冻结账号认证
-
passwd -u lee #解锁账号认证
【3】密码删除
passwd -d lee
[root@westoslinux ~]# passwd -d lxywestos #删除lxywestos用户的密码
【4】
- passwd -e username
- #修改默认使用时间为0
- 备注:密码使用天数为从1970-1-1算其到今天的时间
【5】
- chage -d 0 username
- #账号必须改密码才能登陆系统
【6】密码最短有效期
1.passwd -n 1 username
2.chage -m 1 username
#用户在1天内不能改密码
【7】密码最长有效期
1.passwd -x 40 username
2.chage -M 40 username
#40天内用户必须更新密码否则会被冻结
【8】密码过期警告
1.passwd -w 2 username
2.chage -W 1 username
#账号过期前警告时间
【9】认证非活跃天数
1.passwd -i 2 username
2.chage -I 1 username
#账号认证最大时间超过后还能用多久
【10】账号认证到期时间
chage -E "2020-05-11"
#到2020-5-11这天账号会被冻结
8.用户权力下放
- 在系统中普通用户是无法执行系统管理命令的
- 如果需要普通用户执行系统管理动作那么需要root用户来进行授权
普通用户授权方式 “sudo”
-
作用:
可以使普通用户使用指定的用户身份呢运行命令 -
授权方法:
visudo
#此命令作用是编辑==/etc/sudoers==并提供语法检测
在文件的100行左右 -
代码规范性:
username hostname=(newusername) [NOPASSWD:] /command, /command1 -
lxywestos用户 在linux.wesots.com主机=(用 超级用户 身份) 执行useradd命令
lxywestos linux.westos.com=(root) /usr/sbin/useradd -
westos用户 在linux.westos.com 使用超级用户 免密 执行useradd和userdel
westos linux.westos.com =(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
[root@westoslinux ~]# visudo
-
测试:
-
su - lxywestos
sudo useradd westostest
#在lxywestos第一次使用sudo命令时需要输入westos密码
exit
#退出lee
-
su - westos
sudo userdel -r westostest
#westos可以免密执行userdel 命令
exit