• 用户和组管理


    一:Linux安全模型

    安全3A认证

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

    令牌:token,identity

    令牌是授予用户权限的,如果修改的用户的令牌,用户必须重新登录才能获取新令牌

    安全上下文

    安全上下文指的是一类定义某个进程允许做什么的许可和权限的集合,以进程发起者的身份运行,进程所能够访问资源的权限取决于进程的运行者的身份

    加密

    单向加密:

    • 不可逆:相同算法定长输出,获得密文不可逆推出原始数据
    • 雪崩效应:初始条件的微小改变,引起结果的巨大改变

    加密算法:

    • md5: message digest, 128bits
    • sha1: secure hash algorithm, 160bits
    • sha224: 224bits
    • sha256: 256bits
    • sha384: 384bits
    • sha512: 512bits

    更改加密算法:

    authconfig --passalgo=sha256 --update

    密码复杂性策略

    • 使用数字、大写字母、小写字母及特殊字符中至少3种
    • 足够长
    • 使用随机密码
    • 定期更换,不要使用最近曾经使用过的密码

    密码期限

    二:用户

    用户的分类

    root用户(超级管理员):UID=0的用户为超级用户,拥有系统的最大权限

    普通用户:UID范围1-60000

    系统用户:是程序服务运行的用户,UID范围在1-499(CentOS6.x)、1-999(CentOS7.x),系统用户通常没有登录shell的权限

    登录用户:UID范围在500|1000-60000+,用于交互式登录

    用户管理命令

    useradd 创建用户

    • -u:指定uid
    • -g:指定gid为主组
    • -G:指定附加组
    • -o:不检查uid唯一性,结合-u使用
    • -c:添加描述信息
    • -d:指定家目录
    • -s:指定默认shell
    • -N:不创建主组,并且加入users组为主组
    • -r:创建系统用户
    • -m:创建系统用户时强制创建家目录,结合-r使用
    • -M:创建登录用户时不创建家目录
    • -D:修改/etc/default/useradd文件
      • -s SHELL
      • -b HOME
      • -g GROUP

    usermod 修改用户

    • -u:修改uid
    • -g:修改gid
    • -G:修改附加组,结合-a可以追加附加组
    • -s:修改默认shell
    • -c:修改描述信息
    • -d:修改家目录,结合-m可以搬家
    • -l:修改用户名
    • -L:锁定账户
    • -U:解锁账户,在新系统上不支持对空密码用户解锁
    • -e YYYY-MM-DD:设置账户过期时间
    • -f INACTIVE:设定非活动期限

    userdel 删除用户

    •  -r:删除用户时连家目录一并删除

    id 查看用户信息

    • -u:查看uid
    • -g:查看gid
    • -G:查看用户所属的组的ID
    • -n:显示名称,配合-ugG使用

    su 切换用户

    • su USERNAME 非完全切换,部分变量还是原用户的变量
    • su - USERNAME 完全切换,相当于重新登录
    • su [-] USERNAME -c 'CMD' 登录到新用户执行CMD命令后返回旧用户

    passwd 修改用户密码

    • -d:删除指定用户名密码
    • -l:锁定用户密码 == usermod -L
    • -u:解锁用户密码 == usermod -U
    • -e:强制用户下次登录必须修改密码
    • -f:强制操作
    • -n MINDATS:最短使用期限
    • -x MAXDAYS:最长使用期限
    • -w WARNDAYS:提前多少天警告
    • -i INACTIVEDAYS:非活动期限
    • --stdin 从标准输入接受用户密码,如:echo "user1" | passwd --stdin user1 修改user1用户的密码为user1

    chage 修改用户密码默认策略 /etc/login.defs

    • -d LAST_DAY
    • -E --expiredate EXPIRE_DATE
    • -I --inactive INACTIVE
    • -m --mindays MIN_DAYS
    • -M --maxdays MAX_DAYS
    • -W --warndays WARN_DAYS
    • –l 显示密码策略
    exp:
    [root@centos6 ~]# chage -d 0 user1 [root@centos6 ~]# chage -m 0 -M 42 -W 14 -I 7 user1 [root@centos6 ~]# chage -E 2018-09-10 user1 [root@centos6 ~]# chage -l user1 Last password change : password must be changed Password expires : password must be changed Password inactive : password must be changed Account expires : Sep 10, 2018 Minimum number of days between password change : 0 Maximum number of days between password change : 42 Number of days of warning before password expires : 14

    newusers /etc/passwd格式的文件  用于批量创建用户

    chpasswd  PASSWORD文件 批量修改口令,文件格式为 用户名:密码 一一对应

    三:组

    组的分类

    管理员组:root, 0

    普通组:

    系统组:1-499, 1-999(CentOS7.x)

    普通组:500+, 1000+(CentOS7.x)

    组的类别

    主组:用户的主要组,用户必须属于一个且只有一个主要组

    私有组:组名同用户名,且仅包含一个用户为私有组,创建用户时如不加参数默认会创建一个主组也是私有组

    附加组:一个用户加入到其他组中,但不是用户的主组,这些组叫做用户的附加组

    组管理

    groupadd 创建组

    • -g:指定创建组的GID
    • -r:创建系统组

    groupmod 修改组

    • -n:修改组名
    • -g:修改新的组GID

    groupdel 删除组

    gpasswd 修改组密码

    -a:将用户添加到指定组

    -d:将用户从指定组删除

    -A:设置有管理权限的用户列表

    newgrp 临时切换主组,如果用户不在此组中则需要密码,否则不需要

    groupmems 管理和查看组成员

    • -g, --group groupname 更改为指定组 (只有root)
      • -a, --add username 指定用户加入组
      • -d, --delete username 从组中删除用户
      • -p, --purge 从组中清除所有成员
      • -l, --list 显示组成员列表

    groups 查看用户所属组列表

    四:相关的配置文件

    config:FILE

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

    7个字段:

    1. login name:登录用名(wang)
    2. passwd:密码 (x)
    3. UID:用户身份编号 (1000)
    4. GID:登录默认所在组编号 (1000)
    5. GECOS:用户全名或注释
    6. home directory:用户主目录 (/home/wang)
    7. shell:用户默认使用shell (/bin/bash)
    [root@centos6 ~]# cat /etc/passwd
    root:x:0:0:dongfei,it,11101,131312221:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin

    /etc/group:组及其属性信息

    4个字段:

    1. 群组名称:就是群组名称
    2. 群组密码:通常不需要设定,密码是被记录在 /etc/gshadow
    3. GID:就是群组的 ID
    4. 以当前组为附加组的用户列表(分隔符为逗号)
    [root@centos6 ~]# cat /etc/group
    root:x:0:gentoo,user11
    bin:x:1:bin,daemon,gentoo,user11

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

    9个字段:

    1. 登录用名
    2. 用户密码:一般用sha512加密
    3. 从1970年1月1日起到密码最近一次被更改的时间
    4. 密码再过几天可以被变更(0表示随时可被变更)
    5. 密码再过几天必须被变更(99999表示永不过期)
    6. 密码过期前几天系统提醒用户(默认为一周)
    7. 密码过期几天后帐号会被锁定
    8. 从1970年1月1日算起,多少天后帐号失效
    9. 保留字段
    [root@centos6 ~]# cat /etc/shadow
    root:$6$9MvILiAieGOcghCi$2/ZmaouQQZLQPJNPlaVNUmsAijd34JJIPnR4OPiTTyTTo8bkdPAoFDvo5V/Lni1i1hiAyLdRe7tylR2PfZNsM.:17622:0:99999:7:::
    bin:*:17622:0:99999:7:::

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

    4个字段:

    1. 群组名称:就是群组名称
    2. 群组密码:
    3. 组管理员列表:组管理员的列表,更改组密码和成员
    4. 以当前组为附加组的用户列表:(分隔符为逗号)
    [root@centos6 ~]# cat /etc/gshadow
    root:::gentoo,user11
    bin:::bin,daemon,gentoo,user11

    /etc/skel:家目录模板文件

    [root@centos6 ~]# ls -a /etc/skel/
    .  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla

    /etc/default/useradd 创建用户默认配置文件

    [root@centos6 ~]# cat /etc/default/useradd
    # useradd defaults file
    GROUP=100           #users组ID
    HOME=/home           #家目录位置
    INACTIVE=-1           #非活动时间不限定
    EXPIRE=
    SHELL=/bin/bash        #创建用户时默认shell SKEL=/etc/skel        #家目录模板目录 CREATE_MAIL_SPOOL=yes    #是否创建邮箱

    /etc/login.defs 配置用户密码策略

    [root@centos6 ~]# cat /etc/login.defs 
    #
    # Please note that the parameters in this configuration file control the
    # behavior of the tools from the shadow-utils component. None of these
    # tools uses the PAM mechanism, and the utilities that use PAM (such as the
    # passwd command) should therefore be configured elsewhere. Refer to
    # /etc/pam.d/system-auth for more information.
    #
    
    # *REQUIRED*
    #   Directory where mailboxes reside, _or_ name of file, relative to the
    #   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
    #   QMAIL_DIR is for Qmail
    #
    #QMAIL_DIR      Maildir
    MAIL_DIR        /var/spool/mail      #创建邮箱目录
    #MAIL_FILE      .mail
    
    # Password aging controls:
    #
    #       PASS_MAX_DAYS   Maximum number of days a password may be used.
    #       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
    #       PASS_MIN_LEN    Minimum acceptable password length.
    #       PASS_WARN_AGE   Number of days warning given before a password expires.
    #
    PASS_MAX_DAYS   99999            #密码最大有效期,300年
    PASS_MIN_DAYS   0              #密码最短有效期
    PASS_MIN_LEN    5              #密码最短长度
    PASS_WARN_AGE   7              #密码警告期限
    
    #
    # Min/max values for automatic uid selection in useradd
    #
    UID_MIN                   500       #登录用户的UID范围 500-60000
    UID_MAX                 60000
    
    #
    # Min/max values for automatic gid selection in groupadd
    #
    GID_MIN                   500        #登录用户的GID范围 500-60000
    GID_MAX                 60000
    
    #
    # If defined, this command is run when removing a user.
    # It should remove any at/cron/print jobs etc. owned by
    # the user to be removed (passed as the first argument).
    #
    #USERDEL_CMD    /usr/sbin/userdel_local
    
    #
    # If useradd should create home directories for users by default
    # On RH systems, we do. This option is overridden with the -m flag on
    # useradd command line.
    #
    CREATE_HOME     yes          #是否创建家目录
    
    # The permission mask is initialized to this value. If not specified, 
    # the permission mask will be initialized to 022.
    UMASK           077
    
    # This enables userdel to remove user groups if no members exist.
    #
    USERGROUPS_ENAB yes
    
    # Use SHA512 to encrypt password.
    ENCRYPT_METHOD SHA512         #默认加密算法
    
    MD5_CRYPT_ENAB no

    用户相关文件操作命令

    vipw  ==  vi /etc/passwd

    vigr  ==  vi /etc/group

    pwck 检查passwd文件的配置

    grgck 检查group文件的配置

    pwunconv 将加密密码在passwd文件中显示

    pwconv 将passwd文件中的密码位显示为x

    chfn 为用户添加描述信息

    finger 查看用户的描述信息

    chsh -s SHELL 修改用户的默认登录shell

    欢迎大家共同交流学习~

  • 相关阅读:
    MvcApplication 中方法的那点事
    Html 中阻止事件冒泡的三种方法比较
    WPF中 ItemsSource 和DataContext不同点
    解决:Visual Studio 启动就报错退出
    webapi是如何绑定参数的(How WebAPI does Parameter Binding)
    %cd% 和%~dp0%的区别及cd跨盘符切换路径问题
    win10中matlabR2015b安装libsvm
    MATLAB2015b链接MinGW编译器
    网易内推编程题:异或运算求混合颜料的最小种类
    小易喜欢的单词
  • 原文地址:https://www.cnblogs.com/L-dongf/p/8707607.html
Copyright © 2020-2023  润新知