1、概述:
1)、用户:是每个使用者用用户来标识
密码是认证手段
2)、认证:——Authentication——>将使用某种识别技术将用户标识关联起来
3)、授权:Authorization
4)、权限执行审查:Account(Audition)
5)、2、3、4就是3A认证,完成3A认证才能使用某用户的功能
6)、属主、属组:——>对文件而言
属主:此文件是该用户的拥有者——>own
属组:group,需要统一某权限时将用户拉入此组以获得权限
6)、日志:用户在登录系统后的所有操作会记录在其中
日志就是以后用于审计的凭证
2、组:
用户组:用户的容器;将多个用户合并形成一个逻辑概念
例:当要让多个用户对同一文件进行授权时,就可以将多个用户并入同一个组,将组授权后用户即有权利管理此文件
3、用户类别:
1)、管理用户
2)、普通用户:
系统用户
登录用户
3)、每个用户都有其对应的用户标识:User ID(UID是由16位二进制数表示)
管理员标识(UID)=0
普通用户表示(UID)=1~65635(一般普通用户只用1~6000)
系统用户:UID=1~499(cs6) 1~999(cs7)
登录用户:UID=500~6000(cs6)1000~6000(cs7)
4)、名称解析:(名称转换)——即UID和username之间的转换
5)、如何解析:根据名称解析库来进行(解析库用于保存用户名和UID之间的对应关系)
位于 /etc/passwd中
4、组类别:
1)、管理员组:GID范围同UID
普通用户组:
系统组:GID范围同UID
登录组:GID范围同UID
2)、组标识——>Group ID——>GID
3)、组名称解析:同样据解析库进行解析;位于/etc/group中
4)、组类别:用户主组
用户附加组
5)、组类别:
私有组:组名与用户名相同,且只包含该用户一个组
公共组:组内包含多个用户
5、认证信息:
1)、通过比对事先存储的信息,与登录时提供的信息是否一致
如保存的passwd——>用户密码储存于/etc/shadow 文件夹中
组密码储存于/etc/gshadow文件夹中
2)、密码:
A、使用策略:
使用随机密码
最短长度不低于8位
应使用大写、小写、数字、标点四类字符中的至少三类
定期更换
B、加密算法:
a、对称加密:加密和解密使用同一密钥
明文:plain text
密文:cipher text
b、非对称加密:加密和解密使用的一对密钥
公钥:public key
密钥:private key
c、单向加密:只能加密不能解密——提取数据特征码
定长输出
有雪崩效应
C、常见算法
MD5:massage digest——定长输出128bits
sha1:secure hash algorithm(安全的哈希算法)——定长——160bits
sha224:定长224bits
sha256
sha384
sha512
在计算之初加入随机数(salt),添加随机数
6、信息库储存格式
1)、用户信息库——/etc/passwd
例:hu:x:1000:1000:hu:/home/hu:/bin/bash
1 2 3 4 5 6 7
1、表示用户名
2、口号——加密符
3、用户标识——UID
4、组标识——GID——主组
5、注释性描述
6、主目录——家目录
7、登录的shell——用户默认shell程序
2)、用户密码——/etc/shadow
例:root:x:0:0:root:/root:/bin/bash: :
1 2 3 4 5 6 7 8 9
1、用户登录名
2、密码:!!——表示没有设置密码的用户被锁定无法登陆(密码:$6$中间的6此傲视以上算法的第几种)
3、从1970-01-01到最近一次密码修改经过的时间
4、经过多少天可以修改密码,0—表示可以立即修改
5、密码最长使用期限
6、距离达到最长使用时间,多少时间提示密码需要修改
7、到达最大期限后多少天还可以登陆。但是那时必须修改密码
8、密码禁用时间
9、保留字段
3)、组的信息库——/etc/group
例:hu:x:1000:hu
1 2 3 4
1、用户组名
2、用户组密码
3、GID
4、用户列表:每个用户用 , 逗号分隔;本字段也可为空——若该字段为空表示以此组为附加组的用户没有
7、Linux中权限管理
1)、使用ls -l查询后有三部分权限
rwx rwx rwx
A B C
A、定义user——owner权限
B、定义group的权限
C、定义other的权限
2)、进程安全上下文
进程对文件访问权限的应用模型
进程属主与文件属主是否相同——若相同则应用属主权
否则,检查进程的属主是否属于文件属组,若是则应用属组权限
否则,就只能应用other权限
3)、权限
A、r——red:读取
B、w——writ:写
C、x——excute:执行
4)、文件——普通文件一般默认是没有x执行权限
A、r——可获取文件的数据(即用tail、cat、less、more所获取的内容)
B、w——可修改文件数据(vim)
C、x——可将此文件发起运行为进程(文本内容是二进制或脚本)
5)、目录
A、r——可使用ls命令获取其下的所有文件列表
B、w——可修改此目录下的文件列表(创建或删除文件)
C、x——可cd至此目录中,且可以使用ls -l 获取所有文件详细信息
6)、文件权限模型
A、mode类——rwxrwxrwx
B、ownership——从属关系(usergroup)
7)、权限组合机制(符号与二进制之间的转换)
A、- - - ——>0 0 0
B、- - x ——>0 0 1
C、- w - ——>0 1 0
D、.......
E、.......
F、.......
G、r w x ——>1 1 1
8、Linux系统上的特殊权限
1、特殊权限:SUID、SGID、STICK
2、安全上下文
1)、进程以某用户身份运行,进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作。
2)、权限匹配模型:
A、首先判断进程的属主是否为被访问的文件属主,若是则应用属主的权限,否则进入到第二步
B、判断进程的属组是否属于被访问的文件的属组,若是则应用属组权限,否则进入第三步
C、应用other权限
3、SUID权限仅对二进制可执行文件有效
A、默认情况下:当一个用户发起一个进程去访问一个文件,那么该进程就是以发起这个进程的用户的身份运行的,同样也是以该用户的权限完成操作的。
B、SUID的作用:用户运行某程序时,如果此程序文件拥有SUID,那么该进程将以此文件属主的身份运行程序,而非发起者。
C、管理文件的SUID:
格式:chmod u+|-s FILE...
展示位置:属主的执行权限位
如果属主原有执行权限,则显示为小写s;
否则,为大写S;
4、SGID:权限仅对目录有效
A、默认情况下,用户在一个目录下创建文件的属组为用户的私有组或者基本组;
B、SGID的功能:用户在具有SGID目录下创建的文件或目录的属组为该目录的属组;
C、 管理文件的SGID权限:
chmod g+|-s FILE...
展示位置:属组的执行权限位
如果属组原有执行权限,则显示为小写s;
否则,为大写S;
5、STICK:权限仅对文件有效
A、默认情况下,当一个目录属组具有写权限时,如果用户的属组为该目录属组,那么该用户就可以删除在该目录下的所有文件;
B、Sticky的功用:同组用户或系统上的所有用户在具有Sticky权限的目录下只能删除属主为自身的文件,不能删除同属组的其他文件;
C、管理文件的SUID权限:
chmod o+|-t FILE…
展示位置:其他用户的执行权限位
如果其他用户原本有执行权限,显示为小写t;
否则,为大写T;
注意:系统上/tmp和/var/tmp目录默认均有sticky权限