1、用户和组
安全3A
Authentication:认证
Authorization:授权
Accouting|Audition:审计
用户user
linux用户:Username(UID)
用户分类
管理员:root,id号为0
普通用户:id号为1-65535
普通用户又分为:
系统用户:id号为1-499(centos6版本),1-999(centos7版本)
系统用户无需登录,系统运行时,自动运行
非系统用户(普通用户):500+(centos6版本),1000+(centos7版本)
非系统用户需要登录才能运行
组group
组分类1
管理员组:id号为0
普通组:
系统组:id号为1-499(centos6版本),1-999(centos7版本)
非系统组(普通组):500+(centos6版本),1000+(centos7版本)
组分类2
Linux组的类别
用户的主要组(primary group)
用户必须属于一个且只有一个主组
用户的附加组(supplementary group)
一个用户可以属于零个或多个辅助组
用户和组配置文件
Linux用户和组的主要配置文件:
/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
/etc/passwd文件格式
文件每一行分为7个字段,每个字段含义如下:
(1)login name:登录用名(test1)
(2)passwd:密码 (x)
(3)UID:用户身份编号 (1004)
(4)GID:登录默认所在组编号 (1004)
(5)GECOS:用户全名或注释
(6)home directory:用户主目录 (/home/test1)
(7)shell:用户默认使用shell (/bin/bash)
该文件中各字段信息都可以都过打开/etc/passwd进行更改,不过一般情况下不推荐使用这种方法进行更改,可以通过命令进行更改。
如:chfn 更改注释信息
查看/etc/passwd文件中test1用户注释信息(也可以使用finger命令进行查看,不过该命令需要安装,这里不做详解)
chsh -s 更改shell类型
查看test1用户shell类型
查看/etc/passwd文件除了使用cat,还可以使用getent命令查看,而且单独可以查看某用户的信息。用法如下:
查看/etc/passwd文件
单独查看test1用户信息
/etc/shadow文件格式
文件每行共有9个字段,各字段含义如下:
(1)登录用名
(2)用户密码:一般用sha512加密
加密口令第一第二两个$符之间的数字“6”表示使用的是sha512sum加密算法,如果是“5”,则是使用的sha256sum加密算法
第二第三个$符号之间的内容则是sha512sum加密算法所加的“salt”(随机数),根据“salt”的不同,那么即使口令一样,生成的加密口令也不一样,这样就保证了口令的安全。
如果口令前带有!表示该账户被锁定,无法登录
(3)从1970年1月1日起到密码最近一次被更改的时间
(4)密码再过几天可以被变更(0表示随时可被变更)
(5)密码再过几天必须被变更(99999表示永不过期)
(6)密码过期前几天系统提醒用户(默认为一周)
(7)密码过期几天后帐号会被锁定
(8)从1970年1月1日算起,多少天后帐号失效
(9)保留字段,留作其他用途
关于密码加密
加密机制:
加密:明文--> 密文
解密:密文--> 明文
单向加密:哈希算法,原文不同,密文必不同
相同算法定长输出,获得密文不可逆推出原始数据
雪崩效应:初始条件的微小改变,引起结果的巨大改变
md5: message digest, 128bits
sha1: secure hash algorithm, 160bits
sha224: 224bits
sha256: 256bits
sha384: 384bits
sha512: 512bits
更改加密算法 authconfig --passalgo=sha256 --update
/etc/login.defs 查看加密算法类型
密码的复杂性策略
使用数字、大写字母、小写字母及特殊字符中至少3种
足够长
使用随机密码
定期更换,不要使用最近曾经使用过的密码
使用chage命令可以更改/etc/shadow文件中的与密码有关的日期。
改变之前的日期:
改变之后的日期:
/etc/group文件格式
(1)群组名称:就是群组名称
(2)群组密码:通常不需要设定,密码是被记录在 /etc/gshadow
(3)GID:就是群组的 ID
(4)以当前组为附加组的用户列表(分隔符为逗号)
/etc/gshdow文件格式
(1)群组名称:就是群组名称
(2)群组密码:
(3)组管理员列表:组管理员的列表,更改组密码和成员
(4)以当前组为附加组的用户列表:(分隔符为逗号)
文件操作命令
pwck 检查/etc/passwd文件格式是否有问题
grpck 检查/etc/group文件是否有问题