目录

5.1 系统用户与组

Linux 中的用户与用户组

/images/linux_mt/linux_mt.jpg

本章我们将学习 Linux 中的用户,用户组及权限。这些都是Linux 运维的基础知识,并不难。通过四节我们将学习以下内容:

  1. Linux 中的用户及用户组
  2. Linux 权限及权限的管理
  3. 用户及用户组的管理命令

对于 Linux 的用户及用户组,主要是学习 /etc/passwd, /etc/shadow, /etc/group 三个文件,它们保存着 Linux 用户、用户组及密码。用户管理相关命令的核心,也只是操作这几个文件而已。

有关用户包括三个方面的内容,简称 3A

  1. 用户认证 - Authentication: 用户登录时需要输入用户名和密码
  2. 用户授权 - Authorization: Linux 上文件有属主和属组,并为属组属组以及其他第三方定义了权限
  3. 授权审计 - Audition: 登录和认证会记录到日志文件中,以便于日后审计

本节我们将围绕第一方面,讲述如下内容:

  1. Linux 用户与组的基本概念,包括用户的分类,与ID标识
  2. Linxu 用户的认证

1. Linux 用户基础

计算机容易识别的是数字,因此用户和组在Linux 都标识为 16 位二进制数字,称为 UserID(UID),GroupID,(GID),范围是0-65535 Linux 与用户相关的配置文件如下:

  1. /etc/passwd: 保存用户及属性信息
  2. /etc/group: 组及其属性信息
  3. /etc/shadow: 用户密码及相关属性
  4. /etc/gshaow: 组密码及相关属性
  5. /etc/login.defs: 用户创建和设置规则的配置
  6. /etc/skel: 用户家目录的默认包含的文件
  7. /etc/default/useradd: 用户创建的默认值配置
  8. /etc/shells: 系统包含的所有shells

1.1 用户基础

Linux 中的用户具有如下特征

  1. 用户标识: UserID(UID)
  2. 用户分类与 ID 范围:
    • 管理员: 0
    • 普通用户:1-65535
      • 系统用户: 1-499(CentOS6), 1-999(CentOS7)
        • 作用: 为了能够让那后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户;这类用户从不用登录系统;
      • 登录用户: 500-60000(CentOS6), 1000-60000(CentOS7)
  3. 配置文件:
    • /etc/passwd: 名称解析库,保存了用户名,UID等基础信息
    • /etc/shadow: 保存了用户的密码

1.2 Linux 用户组

Linux 用户组

  1. 组标识:GroupID, GID
  2. 组分类与 ID 范围:
    • 管理员组:0
    • 通用户组:1-65635
      • 系统用户组:1-499(CentOS6), 1-999(CentOS7)
      • 登录用户组:500-60000(CentOS6), 1000-60000(CentOS7)
  3. 配置文件:
    • /etc/group: 保存了组名,组ID,组员等基本信息
    • /etc/gshadow: 保存了组的密码
  4. 组的其他分类:
    • 从单个用户出发,分为:
      • 用户的基本组
      • 用户的附加组
    • 按照名称:
      • 私有组:组名同用户名,且只包含一个用户;
      • 公共组:组内包含了多个用户;

1.3 密码的使用策略:

  • 使用随机密码;
  • 最短长度不要低于8位;
  • 应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类;
  • 定期更换;

加密算法

  • 对称加密:加密和解密使用同一个密码;
  • 非对称加密:加密和解密使用的一对儿密钥;
    • 公钥:public key
    • 私钥: private key
  • 单向加密:只能加密,不能解密;提取数据特征码;
    • 定长输出
    • 雪崩效应

单向加密算法及对应命令:

  • md5: message digest, 128bits – md5sum
  • sha:secure hash algorithm, 160bits – shasum
  • sha224 – sha224sum
  • sha256 – sha256sum
  • sha384 – sha284sum
  • sha512 – sha512sum

2. 用户相关文件解析

2.1 /etc/passwd 用户信息库

name:password:UID:GID:GECOS:directory:shell

  • name: 用户名
  • password:可以是加密的密码,也可是占位符x;
  • UID:
  • GID:用户所属的主组的ID号;
  • GECOS:注释信息
  • directory:用户的家目录;
  • shell:用户的默认shell,登录时默认shell程序;

2.2 /etc/shadow:用户密码

用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:非活动期限:过期期限:保留字段

  • 加密的密码: 使用 $ 符分割为 3 段分别表示:
    • 数字,表示使用的加密算法
    • salt,表示加密过程中添加的随机数
    • 加密之后的密码文本

2.3 /etc/group:组的信息库

group_name:password:GID:user_list

  • user_list:该组的用户成员;以此组为附加组的用户的用户列表;