zoukankan      html  css  js  c++  java
  • linux 用户和组

    1、linux 用户和组

    1.1 安全 3A

      资源分派:

    1 Authentication:认证
    2 Authorization:授权
    3 Accouting|Audition:审计

    1.2 令牌(token)

    用户一登录成功系统分配令牌 token,用户凭借该令牌访问该令牌可以访问的文件,用户想要得到最新的令牌必须重新登录

    1.3 Linux UID与GID

    Linux 用户:Username/UID  Linux 组:Groupname/GID

    #Linux 用户:
    用户管理员:root,UID=0
    普通用户 UID:1-65535
        系统用户 UID:1-499(centos6),1-999(centos7)
            系统用户:对守护进程获取资源进行权限分配
        登录用户:500+(centos6),1000+(centos7)
    
    #Linux 组:
    组管理员:root,GID=0
    系统组 GID:1-499(centos6),1-999(centos7)
    普通组 GID:500+(centos6),1000+(centos7)

    1.4 Linux 安全上下文

      运行中的程序:进程(process)

      以进程发起者的身份运行:当用户执行程序的时候,用户的身份是程序的一个发起者即上下文:context(运行此程序的用户身份,用户组身份)

      进程所能访问资源的权限取决于进程的运行者身份

    1.5 Linux 组的类别

    用户账号可以属于组1 组2 组3,权限为三组累加权限

    (1)用户的主要组(primary group)

      用户必须属于一个且只有一个主组

      组名同用户名,且仅包含一个用户,私有组

    (2)用户的附加组(supplementary group)

        一个用户可以属于零个或多个辅助组

    1.6 Linux 用户和组的主要配置文件

    (1)/etc/default/useradd:与创建用户默认属性值(属于组、配置文件(/etc/skel/)…)有关

    (2)/etc/passwd:用户及其属性信息(名称、UID、主组 ID 等)

    用户 :密码 :UID :GID :描述信息 :家目录 :shell 类型
        密码处使用 X 占位,使用命令 pwunconv 显示密码,使用命令 pwconv 占位
        使用命令 chfn <用户名> 添加描述信息;使用 finger <用户名> 查看用户信息
        如果要更改家目录,不只是要更改家目录还要更改配置,给更改的用户家目录权限 cp -r /etc/skel/.[^.]* /[用户新家目录]
        支持的 shell 类型:/etc/shells;使用 chsh -s /bin/sh 账号名 更改 shell 类型
        /sbin/nologin:不能登录,一般给服务使用

    (3)/etc/group:组及其属性信息

    gpasswd [用户名] 设置组口令
    普通用户可以自己加入组(前提:得知道该组的口令)     # 不建议
    
    newgrp [组名] 输入密码,加入该组,加入后加入组临时成为主组,如果已经在该组里面使用 newgrp 暂时切换主组

    (4)/etc/shadow:用户密码及其相关属性

    用户名 :加密后的口令 :更改口令的时间 :口令最短更改期 :口令过期日期 :密码警告时间 :密码禁用期 :账户过期日期:保留字段
    #在/etc/login.defs 更改默认口令有效期

    (5)/etc/gshadow:组密码及其相关属性

    root :口令(!锁定):组长:组成员(和 group 最后一个字段相同)

    (6)文件操作:vipw 和 vigr(具有语法检查功能) pwck 和 grpck(检查格式)

    1.7 Linux 用户管理命令

    创建用户默认值设定在:/etc/default/useradd 中

    #增加
    useradd
    #修改
    usermod
    #删除
    userdel
    #创建用户
    useradd命令参数:   
    -o  # 配合-u,不检查 UID 的唯一性   -g  # GID:指明用户所属基本组,可为组名,也可以为 GID   -c  # 用户的注释信息   -d  # 以指定的路径(不存在)为家目录   -s  # 指明用户的默认 shell 程序   -G  # 为用户指明附加组,组必须事先存在   -N  # 不创建私有组做主组,使用 users 组做主组   -r  # 创建系统用户 CentOS6:ID<500,CentOS7:ID<1000   -m  # 创建家目录,用于系统用户   -M  # 不创建家目录,用于非系统用户 useradd -D   # 显示默认设置 useradd -D -s shell  # 更改 shell useradd -D -b BASE_DIR  # 更改 BASE_DIR useradd -D -g GROUP  # 更改 GROUP 
    #修改用户
    usermod [OPTION] login   -u UID:新 UID   -g GID:新 GID   -G :新附加组,原来的附加组被覆盖,若要保留同时使用-a 选项   -s SHELL:新 SHELL   -c ‘COMMENT’ :新注释信息   -d HOME:新家目录不会自动创建,若要创建新家目录并移动原家数据,同时使用-m 选项   -l login_name:新的名字   -L:lock 指定用户,在/etc/shadow 密码栏的增加!   -U:unlock 指定用户,将/etc/shadow 密码栏的!拿掉   -e YYYY-MM-DD:指明用户账号过期日期   -f INACTIVE:设定非活动期限
    #删除用户
    userdel -r login # 顺便删除家目录
    # 只显示该用户的相关信息(/etc/passwd
    getent
    passwd [用户名]
    #修改指定用户的密码
    passwd [OPTIONS] login
      -d    #删除指定用户密码
      -l    #锁定指定用户
      -u    #解锁指定用户
      -e    #强制用户下次登录修改密码
      -f    #强制操作
      -n mindays    #指定最短使用期限
      -x maxdays    #最大使用期限
      -w warndays    #提前多少天开始警告
      -I inactivedays #非活动期限
      -stdin          #从标准输入接收用户密码
         echo “password” | passwd --stdin username

      用户管理之批量创建用户:

        方法一:复制 /etc/passwd 中的用户信息,追加至 users.txt 文件里,通过newusers users.txt 批量创建用户(不限终端,跨终端使用 scp 远程拷贝再批量创建)

        方法二:shell 脚本之 for 循环实现

      用户管理之批量修改口令:

        方法一:追加多个 "用户名:密码" 至 passwd.txt 文件,cat passwd.txt | chpasswd 批量修改密码

        方法二:shell 脚本之 for 循环实现

      用户管理之切换用户身份:

    su user_name    #不会改变当前工作目录以及HOME,SHELL,USER,LOGNAME。
    su - user_name  #改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。也更改PATH变量。

    1.8 Linux 组账号维护命令

    #增加
    groupadd
    #修改
    groupmod
    #删除
    groupdel
    #创建组
    groupadd [OPTION]… group_name
       -g GID:指定 GID
       -r 创建系统组(CentOS6:ID<500 CentOS7:ID<1000#修改组
    groupmod [OPTION]… group_name
       -n group_name:新名字
       -g GID:新 GID
    
    #删除组(主组不能直接删,附加组可以)
    groupdel group_name
    #添加或移除至指定组
    gpasswd [OPTION] GROUP
       -a user   #将 user 添加至指定组中
       -d user  #从指定组中移除用户 user
       -A user1,user2,… #设置有管理权限的用户列表
    newgrp          #临时切换主组,如果用户不属于此组,则需要组密码
    groupmems -l -g 组名        # 查看组成员
    groupmems -a 用户名 -g 组名  # 往组里添加用户(删除-d 全清-p)
    groups 用户名    # 查用户属于哪个组

    1.8 密码加密

      加密机制:加密:明文→密文 解密:密文→明文

      单项加密:哈希算法,原文不同,密文必不同

      相同算法定长输出,获得密文不可逆推出原始数据

      雪崩效应:初始条件的微小改变,引起结果的巨大改变

      加密算法:md5、sha1、sha224、sha256、sha384、sha512

      更改加密算法:authconfig –passalgo=sha256 –update,其实更改了/etc/login.defs

      密码的复杂性策略,生产中使用

  • 相关阅读:
    极光推送 标签和别名设置说明
    极光推送集成遇到的坑
    iOS开发:创建推送开发证书和生产证书,以及往极光推送官网上传证书的步骤方法
    【大数据算法】蓄水池抽样算法
    【leetcode】Find Minimum in Rotated Sorted Array I&&II
    朴素贝叶斯算法的实例
    【leetcode】Min Stack -- python版
    朴素贝叶斯算法的python实现
    决策树的python实现
    kNN算法python实现和简单数字识别
  • 原文地址:https://www.cnblogs.com/zyybky/p/12369950.html
Copyright © 2011-2022 走看看