一、安全上下文
Linux中,能够实现资源使用和完成任务的主体是应用程序进程,进程是以发起者的身份运行的,每个进程的拥有者就是它的发起者,进程会被标记上发起者的身份信息用于验证权限。当进程试图访问资源的时候,安全上下文(Secure Context)会比对进程的所有者和资源的所有者之间的关系。
首先,查看进程的所有者是否和资源所有者为同一用户,若是,则按照所有者拥有的权限来使用资源;
如果不是,则判断进程的所有者是否属于该资源所属组的成员,若是,则按照所属组的权限来使用资源;
如果不是,就按照最为普通的用户权限来使用资源。
二、用户账户:实现操作者和计算机交互式操作的基础,是操作者的身份在满足了验证条件之后的计算机系统中的映射
1.用户账户分类
超级用户(管理员):root
普通用户:
系统用户(非登录用户):
为了保证安全,某些进程或服务必须以非管理员的用户身份运行,这类非管理员用户称为系统用户,此类用户一般不允许登录到系统
登录用户:
能够通过登录行为验证身份而获得资源访问权限的用户
2.用户账户的标识名称
登录名称:字符串标识
UID:为计算机操作系统提供的数字标识符号,范围为0~2^32-1
超级用户:
用户名:root
UID:0
普通用户:
系统用户:
Centos 6-:1~499
Centos 7+:1~999
登录用户:
Centos 6-:500+
Centos 7+:1000+
注意,60000+的UID通常需要用户自定义标识
三、名称解析
在用户使用登陆名称登陆系统的时候系统会对登陆名称使用解析库(/etc/passwd)进行解析(名字 <---> UID)利用解析库完成认证机制,验证登陆用户输入的登陆名称是否存在。在系统确定用户存在之后就会在用户的认证信息库(/etc/shadow)中查找用户的信息,找到这个用户的权限等信息后允许其登陆。
默认的认证机制:密码认证
在linux中,保存到认证库的密码是经过单向加密算法处理过的,一共有六种,分别为MD5、sha1、sha224、sha256、sha384、sha512,六种算法在认证库中以$1~$6表示,加密算法会在你输入的原始密码后加上salt再进行加密计算,salt为随机字符串,认证库中密码的最终形态为:算法 + salt + 单向加密的结果字符串
四、组账户:将多个用户联系一起以便集中授权的容器
1.组的分类
超级用户组
普通用户组
系统用户组
登录用户组
2.组账户的标识方法
组账户名称
GID
超级用户组:0
系统用户组:
CentOS 6-:1~499
CentOS 7+:1~999
登录用户组:
CentOS 6-:500+
CentOS 7+:1000+
linux中,每个用户账户必须至少属于一个组,用户账户的GID标识称为用户的主要组(基本组),每个用户必须要有且仅有一个主要组;用户账户也可以添加多个附加组
五、与组相关的命令
1.groupadd 创建一个新组
-g GID 指定要创建组的GID
-r 将组创建为系统组,此时应该保证GID在系统组范围内
2.groupdel 删除一个组
如果一个组是某个用户的主要组,则该组不能删除
3.groupmod
-g GID 修改指定组的GID
-n NAME 修改指定组的组账户名称
六、与用户账户相关的命令
1.useradd 创建一个新用户或更新默认新用户信息
-c 为用户添加注释信息
-d 为用户指定家目录的路径
-e 设定用户密码的绝对过期时间
-f 设定用户密码使用达到最大时间后的宽限期
-g 为用户指明GID,如果不写此选项,系统会创建一个与用户名相同的组并将其设置为用户的主要组
-G 为用户添加附加组
-m 必须为用户创建家目录
-M 一定不为用户创建家目录
-r 创建系统用户
-s 为用户指定默认shell
-u 为用户指定UID
2.userdel 删除用户账户和相关文件
-r 删除用户的同时删除用户的家目录及用户邮箱文件
3.usermod
-c 修改用户注释信息
-d 修改用户家目录
-e 修改用户密码过期的绝对日期
-f 修改用户密码过期宽限期
-g 修改用户的主要组
-G 修改用户的附加组
-l 修改用户的登录名
-s 修改用户的登录shell
-u 锁定用户的UID
-L 锁定用户
-U 解锁用户
4.passwd 修改用户密码相关信息
-l 锁定用户
-u 解锁用户
-d 删除用户的密码,也可用于解除用户锁定,因为在认证库中在密码前表示锁定用户的!符号被一并删除
-e 直接设置用户密码过期
-n 用户密码的最短使用时常,默认值为0
-x 用户密码的最长使用时常,默认值为99999
-w 用户密码过期之前多少天开始发送警告信息
-i 用户密码过期之后的宽限期
-S 查看用户密码的状态信息
5.chage 更改用户密码过期信息
-d 上一次更改的日期
-E 账号到期的日期
-I 密码过期之后锁定账号的天数
-l 列出用户以及密码的有效期
-m 密码可以更改至少需要多少天
-M 密码保持有效的最大天数
-W 用户密码过期之前多少天开始发送警告信息
6.chsh 更改账户shell,相当于usermod -s
7.finger 查找并显示用户信息
8.id 显示用户账户信息
-u 显示用户有效的UID
-g 显示用户有效的GID
-n 显示名称
9.su 切换用户账户
-,-l 以后面的用户身份登录到系统
-c "COMMAND" 以前面指定的用户身份运行COMMAND,不进行身份登录切换