用户、组和权限管理
命令修改用户的口令:# echo centos | passwd –stdin chesfer(用户名)
如果不想看修改成功的信息:# echo centos | passwd –stdin chesfer(用户名) > /dev/null
本章节的内容:
了解Linux的安全模型
了解用户帐号和组群帐号的目的
用户和组管理命令
理解并设置文件权限
默认权限
特殊权限
ACL
一、认识Linux的3A安全(资源分派)
Authentication:认证
Authorization:授权
Accouting|Audition:审计
二、用户(管理员和普通用户):
三、组(管理组和普通用组):
四、了解Linux的安全上下文:
运行中的程序:进程(process)
以进程发起者的身份运行:root:/bin/cat ;mage: /bin/cat
进程所能够访问资源的权限取决于进程的运行者的身份
五、组的类别:
六、Linux用户和组的主要配置文件:
/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
七、passwd格式:
[login name:登录用名(wang)]:[passwd:密码(x)]:[UID:用户身份编号(1000)]:[GID:登录默认所在组编号(1000)]:[GECOS:用户全名或注释]:[home directory:用户主目录(/home/wang)]:[shell:用户默认使用shell (/bin/bash)]
查看用户的passwd:# cat/etc/passwd
查看指定用户的passwd:命令#getentpasswd username
/etc/passwd 是以前存放密码的文件;新版的操作系统处于安全性上的考虑,将密码的文件放在了/etc/shadow;如果需要更改会到以前的存放位置,则使用命令# pwunconv,恢复新的密码存放位置命令:# pwconv
###
更改用户的描述信息:命令#chfnusername
查看用户信息的描述,命令:#finger username
更改用户的shell,命令:# chsh -s/bin/csh username
###
shadow文件格式:
[登录用名]:[用户密码:一般用sha512加密]:[从1970年1月1日起到密码最近一次被更改的时间]:[密码再过几天可以被变更(0表示随时可被变更)]:[密码几天后必须被变更(99999表示永不过期)]:[密码过期前几天系统提醒用户(默认为一周)]:[密码过期几天后帐号会被锁定]:[从1970年1月1日算起,多少天后帐号失效。]
查看用户的shadow:# cat/etc/shadow
查看指定用户的shadow:命令# getentshadow username
密码期限拓扑图:
九、密码加密:
1、加密机制:加密:明文--> 密文;解密:密文--> 明文
2、单向加密:哈希算法,原文不同,密文必不同
3、相同算法定长输出,获得密文不可逆推出原始数据
4、雪崩效应:初始条件的微小改变,引起结果的巨大改变
5、加密算法类型:
md5: message digest, 128bits
sha1: secure hash algorithm, 160bits
sha224: 224bits
sha256: 256bits
sha384: 384bits
sha512: 512bits
6、更改加密算法:# authconfig --passalgo=sha256 –update(不会即刻生效,需要用户重新更改密码后方可生效)
7、密码的复杂性策略:使用数字、大、下写字母及特殊字符中至少3种;足够长;使用随机密码;定期更换;不要使用最近曾经使用过的密码
8、生成随机数做密码:命令# openssl rand -base64 20
生成没有特殊符号的随机数:命令# openssl rand -base64 20 | tr -d [[:punct:]]
十、Group的文件格式:
[群组名称:就是群组名称]:[群组密码:通常不需要设定,密码是被记录在/etc/gshadow]:[GID:就是群组的ID]:[以当前组为附加组的用户列表(分隔符为逗号)]
十一、gshadow的文件格式:
[群组名称:就是群组名称]:[群组密码]:[组管理员列表:组管理员的列表,更改组密码和成员]:[以当前组为附加组的用户列表:(分隔符为逗号)]
查看命令:#getent gshadow bin
组名:组密码:组管理员账号:组的成员(多个成员使用,隔开)
临时性更改用户组:命令#newgrpbin
十二、文件操作:
vipw和vigr 修改passwd和gshadow配置文件
pwck和grpck:检查passwd和gshadow的修改是否格式错误:
十三、 用户和组的管理命令:
用户管理命令:useradd、usermod、userdel
组帐号维护命令:groupadd、groupmod、groupdel
用户创建:useradd
使用格式:useradd[options] LOGIN
格式选项:-u UID:[UID_MIN, UID_MAX]定义在/etc/login.defs
-o 配合-u 选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID
-c "COMMENT":用户的注释信息
-d HOME_DIR:以指定的路径(不存在)为家目录
-s SHELL: 指明用户的默认shell程序 可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:为用户指明附加组,组必须事先存在
-N 不创建私用组做主组,使用users组做主组
-r: 创建系统用户CentOS 6: ID<500,CentOS 7: ID<1000
默认值设定:/etc/default/useradd文件中
显示或更改默认设置:useradd -D、useradd -D -s SHELL
### 新用户创建使用的配置模板存放在/etc/skel下;新用户创建的默认属性模板存放在/etc/default/useradd下 ###
### 命令上锁用户:#usermod –Lusername;命令解锁用户:usermod -U username ####
作业;
1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"GentooDistribution"
# useradd -G bin,root -s /bin/csh -c "Gentoo Distribution"Gentoo
2、创建下面的用户、组和组成员关系:名字为admins的组,用户natasha,使用admins 作为附属组,用户harry,也使用admins 作为附属组用户sarah,不可交互登录系统,且不是admins 的成员,natasha,
harry,sarah密码都是centos
# groupadd admins;useradd -G admins natasha;useradd -G admins harry;useradd -s /sbin/nologin -r sarah;echo"centos"|passwd --stdin natasha;echo "centos"|passwd--stdin harry;echo "centos"|passwd --stdin sarah