用户和组管理
用户账户
组账户
权限分配
Cisco开发并建立了AAA认证体系:
Authentication:认证,核实使用者身份;
Authorization:授权,对已经核实身份的使用者进行资源分配;
Accounting:审计,监管资源被使用的情况;
多任务,多用户操作系统;
能够实现资源使用和完成任务的主体是:应用程序进程;
安全上下文:Secure Context
进程是以其发起者的身份运行的;可以理解为,进程的所有者就是其发起者;每个进程上都会标记上其所有者的身份信息;
当进程试图访问资源的时候,安全上下文会比对进程的所有者和资源的所有者之间的关系:
首先,查看进程的所有者是否和资源的所有者为同一用户,如果是,就按照所有者拥有的权限来使用资源;
如果不是,则判断进程的所有者是否属于该资源所属组的成员;如果是,按照所属组的权限来使用资源;
如果不是,就按照最为普通的其他用户的权限来使用资源;
用户账户:实现操作者和计算机交互式操作的基础,是操作者的身份在满足了验证条件之后的计算机系统中的映射;
用户账户分类:
超级用户(管理员):root
普通用户:
系统用户(非登录用户):
为了保证安全,往往会让某些进程或服务必须以非管理员的用户身份运行;这类非管理员用户,称为系统用户;此类用户一般不允许登录到系统的;
登录用户
能够通过登录行为验证用户身份进而获得资源访问权限并可以对资源进行操作的用户,可以称为登录用户;
用户账户的标识方式:
用户登录名称:
为操作者提供的简单易记的字符串标识;
用户的数字ID(UID):
为计算机操作系统提供的标准的数字标识符号,0~2^32-1
超级用户:
用户名:root
UID:0
普通用户:
系统用户:
CentOS 6-:1~499
CentOS 7+:1~999
登录用户
CentOS 6-:500+
CentOS 7+:1000+
注意:60000+的UID通常需要用户自定义标识;
名称解析:
用户名 <--> UID
用户名解析库:/etc/passwd
操作系统中的认证组件通过解析库实现认证机制,即验证登录用户是否为已经存在的用户;
用户的认证库:/etc/shadow
通过此前的解析库认定用户是存在的,再经过认证库的认证,来证明登录用户就是其声明的用户;
默认的认证机制:密码认证;
密码复杂性要求:
1.尽量避免使用有规律的或者来源于字典中的字符串作为密码;
2.密码要足够长,一般不得少于6个字符;
3.密码要足够复杂,其中应该至少包括大写字母,小写字母,数字及其他符号中的三类;
4.不定期更换,每隔一段时间进行密码更换;
在Linux中,保存到认证库的密码是经过单向加密算法处理过的;
能够加密密码的算法:
MD:
MD5,Message Digest Version 5,消息摘要算法第5版;
128位定长输出;
SHA:Secure Hash Algorithm,安全的哈希算法;
sha1:160加密输出
sha224:
sha256:
sha384:
sha512:默认的加密算法;
salt:通过随机算法计算得到的随机数;
随机数的生成装置:
/dev/random:
仅仅从熵池中返回随机数;如果熵池中随机数耗尽,进程会被阻塞;
/dev/urandom:
首先试图从熵池中返回随机数,如果熵池中随机数耗尽,则利用伪随机数生成器生成伪随机数;
在认证库中的密码的最终形态:算法+salt+加密字符串;
算法:$1~$6
salt:$随机字符串
加密字符串:$单向加密的结果
组账户:将具有某些相同或相似属性的用户联系在一起以便可以集中授权的容器;
组的分类:
超级用户组
普通用户组
系统用户组
登录用户组
组账户的标识方法:
组账户名称:
组账户ID(GID):
超级用户组:0
系统用户组:
CentOS 6-:1~499
CentOS 7+:1~999
登录用户组:
CentOS 6-:500+
CentOS 7+:1000+
组名解析:
解析库:/etc/group
认证库:/etc/gshadow
组也需要使用密码加密保护;
用户账户和组账户之间的关系:
在Linux中,每个用户必须至少属于一个组;
用户账户的GID标识被称为用户的主要组(基本组),Primary Group;每个用户必须要有主要组,而且只能有一个;
在主要组的基础之上,用户可以与其他的组账户存在逻辑关系,此类组称为用户的附加组(附属组,额外组),Addtion Group;对于用户来说,此类组可以没有,也可以有多个;
转载于:https://blog.51cto.com/13487800/2123576