一、Linux用户基本概念
1. 3A机制:基于多任务、多用户(Multi-tasks, Multi-Users)
使用者--->用户标识、密码;
认证信息:通过比对事先存储的,与登录时提供的信息是否一致;
Authentication: 认证机制,通过某种方案来确认用户是其声称的用户,如密码、生物识别等
Authorization: 授权机制, 资源使用级别(Linux只有管理员和普通用户两级分配机制,权限)
Audition: 审计机制,监督权限的使用 ,log审计凭据---额外审计功能SELinuse
2. 用户的分类
用户标识:UserID, UID
16bits二进制数字:0-65535,
Linux内核(2.6x版)已经可以支持到4294967295(2^32-1)个标识符
管理员:0
普通用户:1-65635
系统用户:1-499(CentOS 6), 1-999(CentOS 7)
登录用户:500-60000(CentOS 6), 1000-60000(CentOS 7)
注意:CentOS 7(RHEL 7)开始用户系统用户的数量增大
3.用户配置文件
(1) 用户信息库,名称解析库:/etc/passwd
[root@localhost ~]# man 5 passwd
格式(七段):account:password:UID:GID:GECOS:directory:shell
account: 用户名
password:可以是加密的密码,也可是占位符x;
UID:用户的ID号
GID:用户所属的主组的ID号;
GECOS:注释信息
directory:用户的家目录;
shell:用户的默认shell,登录时默认shell程序;
(2) 密码存储位置:/etc/shadow
[root@localhost ~]# man 5 shadow
格式(九段):用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期宽限时间:账号失效日期:保留字段
login name:用户名
encrypted password:经过编码的密码
date of last password change:最近一次修改密码的时间
minimum password age:最短使用期限
maximum password age:最长使用期限
password warning period:警告期段
password inactivity period:过期宽限时间
account expiration date:账号失效日期
reserved field:保留字段
加密密码格式:第二个$和第三个$之间是SALT,后面是加密后的密码
二、Linux组基本概念
1. 用户组(用户容器)的分类
组标识:GroupID, GID
16bits二进制数字:0-65535
(1)系统视角:管理员用户组&普通用户组
管理员组:0
普通用户组:1-65635
系统用户组:1-499(CentOS6), 1-999(CentOS7)
登录用户组:500-60000(CentOS6), 1000-60000(CentOS7)
(2)用户视角:基本组&附加组
用户的基本组:用户本身所属组
用户的附加组:用户额外所支持的组
(3)公共组&私有组
公共组:组内包含了多个用户;
私有组:组名同用户名,且只包含一个用户;
2.用户组配置文件
(1)名称解析库:/etc/group
[root@localhost ~]# man 5 group
格式:group_name:password:GID:user_list
group_name:用户组名;
password:组密码;
GID:用户所属的主组的ID号;
user_list:该组的用户成员,以此组为附加组的用户的用户列表;
(2)密码库:/etc/gshadow
[root@localhost ~]# man 5 gshadow
格式:group name:encrypted password:administrators:members
group name:组名称
encrypted password:加密密码,以!开头表示无合法密码,所以无用户组管理员
administrators:用户组管理员账号
members:该用户组的所属账号
三、密码相关策略
1. 加密算法
(1)对称加密算法:加密和解密使用同一个密码;
(2)非对称家吗算法:加密和解密使用的一对儿密钥
密码对:公钥(pubic key)、私钥(private key),一个公钥对应一个私钥
(3)单向加密:只能加密、不能解密,提取数据特征码
不可逆算法,常用语数据完整性校验,速度是非对称加密的1000倍
定长输出:生成的加密密码长度是一定的
雪崩效应(蝴蝶效应):任何passwd或sallt微小改变,加密后结果发生巨大改变
【算法】
md5: message digest消息摘要, 128bits(2^128种变化,16进制输出)
sha:secure hash algorithm 安全的哈希算法, 160bits
扩展: sha224、sha256、sha384、sha512
【SALT】添加的随机数:不同用户密码相同,随机数不同加密结果相差甚远
实例ONE.已知系统上gentoo和slackware两个空密码用户,添加相同密码,对比加密后密码
[root@localhost ~]# tail -2 /etc/shadow
gentoo:!!:16777:0:99999:7:::
slackware:!!:16777:0:99999:7:::
[root@localhost ~]# passwd gentoo
Changing password for user gentoo.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd slackware
Changing password for user slackware.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# tail - 2 /etc/shadow
gentoo:$6$Oz6XCp7o$400.nBpnW5d77saSaMX7tqDAp656S59HctB4rrQuLGd9SXZ.fn/jFT1vqHU11wcXkMW/MQm9DqiF2z6eeNxWk.:16779:0:99999:7:::
slackware:$6$rvEi4gcC$8jBgr/.bOFyDmFjyBZphYyjXBtR03Ekz6ZGw0zMlZkXcQK7HaUgD71zrgA9t7yMk.Yzyw5d8TIAPQlHEIrbLa0:16779:0:99999:7:::
[root@localhost ~]#
2.密码使用策略
(1) 使用随机密码;
(2) 最短长度不要低于8位;
(3) 应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类;
(4) 定期更换;