一.用户及用户组存在的意义
(一)用户存在的意义
系统资源是有限的,如何合理分配系统资源?在这个问题解决时必须要有连个资源配合
1.身份 account
2.授权 author
3.认证 auth
3A机制,3A机制组成系统中最底层的安全架构
(二)用户组存在意义
用户组是一个逻辑容器,对用户进行归类和统一授权
二.用户及用户组在系统中的存在方式
电脑对数字敏感 id
人类对字符串敏感 名称
id <-------> 名称 必须要记录到文件当中用户才能存在,用户就是/etc/passwd文件中的一行字符,用户组存在的方式就是/etc/group 文件中的一行字符
三.用户切换
(一)用户查看
whoami 查看当前用户
id 查看用户id信息
???
-u 查看用户的用户id
-g 查看用户主组id
-G 查看用户所有的组的id
-n 显示名称
(二)用户切换
su - username
- 切换用户环境 (注意)
不加-,用户环境混乱,权限问题出现
username 如果root ----> commonuser 不需要后者密码
commonuser ----> root 需要密码
commonuser ----> commonuser 需要密码
注意:在做用户切换时当使用完毕用户身份及时退出,不要在一个shell中反复执行su命令,在一个shell中反复执行su命令会导致环境错乱.
四.用户涉及到的系统配置文件
(一)./etc/passwd 用户身份信息文件
root: x: 0: 0: root: /root: /bin/bash
用户名 密码 uid gid 用户说明 家目录 默认开启的shell
注:用户id: (2*16 0-65535) (0:root 1-999:systemuser 1000-65535:commonuser)
(二)./etc/group 组身份信息文件
组名称:组密码:组id:组的附加成员
root: x: 0:
组名 组密码 组id 组的附加成员
(三)./etc/skel/.* 用户环境配置文件模板
隐藏文件 .bash_logout(退出设置) .bash_profile(环境变量全局的) .bashrc(脚本)
(四)./etc/shadow 用户认证信息文件
用户名:密码锁定:最后一次修改密码(从1970.7.1算起):密码最小使用期限:密码最大: 距离使用期限几天警告:密码过期后还有几天可以修改密码:账号的使用期限:保留
(五)./home/username 用户家目录
修改底层文件,用户的建立
1.vim /etc/passwd
2.vim /etc/group
3.建立新用户下的家目录
4.生成密码
gnome-session-quit --force 快速退出到登录界面
直接用户删除:家目录;用户邮箱;用户身份信息文件;组身份信息文件;用户认证信息文件
五.用户和用户组建立及删除
监控用户建立的命令
两个命令可以用分号隔开
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 指定用户家目录
-c word username 指定用户说明
-s shell username 指定用shell
-M username 创建时不创建家目录
(二).userdel -r username 用户删除 -r 删除用户的系统配置文件
(三).groupadd groupname 组建立
-g id groupname 指定组名称
(四).groupdel groupname 组删除
六.用户和用户组的信息管理
(一).usermod
-l 更改用户名称
-u 更改用户id ( 需要一个新的id)
-g 更改主组id
-G 更改用户附加组身份
-aG 添加用户附加组身份
-c 更改用户说明
-d 更改家目录指向(只是更改了/etc/passwd 的文件内容)
-md 更改家目录指向同时更改家目录名称
-s 更改默认shell
(-s /sbin/nologin 用户不能登录,只运行应用,不让其登入系统)
-L 冻结账号
密码锁定(密码前多了!)
-U 解锁
echo westos | passwd --stdin test 非交互式给用户设密码 (将密码westos传递给passwd标准输出给用户test)
(二).groupmod -g 更改用户组id (需要一个新的组id)
七.用户认证信息管理
(一).用户名称
passwd -S lee 查看密码状态
(二).用户加密字符
1.更改密码
passwd lee 只有root可以执行 “echo 123 | passwd --stdin lee” (将密码123传递给passwd标准输出给用户lee)
passwd 普通用户改密码
Changing password for user lee.
Current password: 输入原始密码
New password: 输入新密码(8位以上无序数字+无序字母组合)
Retype new password: 重复输入
passwd: all authentication tokens updated successfully.
2.冻结认证
passwd -l lee 冻结账号认证 (密码锁定,密码前多了两个!)
usermod -L lee
2.passwd -u lee 解锁账号认证
usermod -U lee
3.passwd -d lee 密码删除 (用户登录无需密码)
4.passwd -e lee 修改默认使用时间为0 (密码最后一次修改天数,从1970-1-1算其到今天的时间)
chage -d 0 lee 账号必须改密码才能登陆系统
5.密码最短有效期
passwd -n 1 lee lee在1天内不能改密码
chage -m 1 lee
6.密码最长有效期
passwd -x 40 lee 40天内lee用户必须更新密码否则会被冻结
chage -M 30 lee
7.密码过期警告
passwd -w 2 lee 账号过期前警告时间
chage -W 1 lee
8.认证非活跃天数
passwd -i 2 lee 账号认证最大时间超过后还能用多久
chage -I 1 lee
(chage修改后无提示)
9.账号认证到期时间
chage -E "2020-05-11" lee 到2020-5-11这天账号会被冻结
10.未启用功能
八.用户权力下放
在系统中普通用户时无法执行系统管理命令的,如果需要普通用户执行系统管理动作,那么需要
root用户来进行授权。
普通用户授权方式 “sudo”(相当于切换用户)
作用:可以使普通用户使用指定的用户身份呢运行命令
(一)授权方法:
visudo (此命令作用是编辑/etc/sudoers并提供语法检测,即改即生效)
在文件的100行左右 代码规范性
username hostname=(newusername) [NOPASSWD:] /command, /command1
用户 在哪台主机=(用超级用户身份) 执行命令
Linux 在localhost.localdomain 使用超户 免密 执行useradd 和 userdel
注意:(不用的用户及时删掉或禁止登录)
(二)测试:
su - lee
sudo useradd westostest 在lee第一次使用sudo命令时需要输入lee密码
exit 退出lee
su - westos
sudo userdel -r westostest westos可以免密执行userdel 命令
九.练习
1.
2.(1)
(2)
(3)
(4)useradd westosadmin
,
也可以
3.(1)
(2)