Linux用户和组的基础概念

(一)用户,组和权限管理

  • multi-tasks,multi-user
  • 每个使用者:
    • 用户标识,密码
      • 3A
        • 认证/Authentication
        • 授权/Authorization
        • 审计/Audition
    • 组:用户组,用户容器,有些时候叫角色
  • 用户类别
    • 管理员
    • 普通用户
      • 系统用户
      • 登陆用户
    • 用户标识:UserID,UID,16bits二进制数字,有效范围0-65535
      • 管理员:0
      • 普通用户:1-65535,CentOS来讲,一般只到6万
        • 系统用户:1-499(CentOS6),1-999(CentOS7)
        • 普通用户:500-60000(CentOS6),1000-60000(CentOS7)
      • 用户解析:名称转换;
        • UserName<-->UID
        • 根据名称解析库进行:/etc/passwd
    • 组类别1:
      • 管理员组
      • 普通用户组
        • 系统用户组
        • 登陆用户组
      • 组标识:GroupID,GID,16bits二进制数字,有效范围0-65535
        • 管理员组:0
        • 普通用户组:1-65535,对于CentOS来讲,一般只到6万
          • 系统用户组:1-499(CentOS6),1-999(CentOS7)
          • 普通用户组:500-60000(CentOS6),1000-60000(CentOS7)
        • 名称解析
          • GroupName<-->GID
          • 根据名称解析库进行:/etc/group
    • 组类别2:
      • 用户的主组/基本组
      • 用户的附加组
    • 组类别3
      • 用户的私有组:组名同用户名,且只包含一个用户
      • 公共组:组内包含多个用户
  • 认证信息
    • 通过比对事先存储的,与登陆时提供的信息是否一致
    • 密码:
      • 用户密码:/etc/shadow
      • 组密码:/etc/gshadow
      • 密码的使用策略
        • 使用随机密码
        • 最短长度不要低于8位
        • 使用大写字母,小写字母,数据,标点四类字符中的最少三种
        • 定期更换
      • 加密算法
        • 对称加密:加密和解密使用同一个密钥
        • 非对称加密:加密和解密使用一对儿密钥:共钥/pubic key,私钥/private key
        • 单向加密:只能加密,不能解密;提取数据特征码
          • 定长输出,无论源明文多长
          • 有雪崩效应,初始条件的微小变化将会导致结果的巨大改变
          • md5:消息摘要/Message Digest,5是版本号,定长输出128位
          • sha:安全哈希算法/secure hash algorithm,定长输出160位
          • sha224,sha256,sha384,sha512
          • echo "How are you?" | md5sum
          • echo "How are you?" | sha512sum
          • 在计算之时,加salt,添加随机数,所以在shadow文件中,即使两个用户的密码一样,显示的字串也不一样,从而方式密码泄漏
          • 因为加密不可逆,所以每次用户登陆时,系统都会对用户的输入进行加密,然后比较加密后的结果
  • 用户信息库文件的存储格式
    • /etc/passwd
      • name:password:UID:GID:GECOS:directory:shell
      • name:用户名
      • password:可以是加密后的密码,也可以是占位符x,(命令pwconv)
      • UID
      • GID:用户所属的主组的ID号
      • GECOS:注释信息,电话等
      • directory:用户的家目录
      • shell:用户登陆时默认打开的shell
    • /etc/shadow
      • 用户名
      • 密码:第一个$符号后面的数字表示加密算法,1表示md5,然后依次类推,第二个$符号后面表示添加的随机数,第三个$符号后面是真正的加密后的密码
      • 最后一次更改密码的日期:相对时间计时法,从1970年1月1日到更改密码那一天所经历的天数;0表示用户在下次登陆的时候必须修改密码;空表示密码的年龄功能被禁用
      • 密码的最小年龄:两次修改密码的最小间隔
      • 密码的最大年龄:密码必须修改的时间间隔
      • 密码警告时间段:提醒用户修改密码的时间间隔
      • 密码禁用期:最大年龄之后的宽限期
      • 账户过期日期:从1970年1月1日开始的天数
      • 保留字段
    • /etc/group
      • group_name:password:GID:user_list
      • user_list:以此组为附加组的用户的用户列表。主组信息查passwd文件中的GID
    • 密码存储格式:单向加密,并借助于salt完成

相关命令:useradd,userdel,usermod,passwd,groupadd,groupdel,groupmod,gpasswd,chage,chsh,id,su等等

原文地址:https://www.cnblogs.com/jacky1982/p/7623593.html