zoukankan      html  css  js  c++  java
  • linux用户管理(useradd、userdel、usermod、groupadd、groupdel、chage、passwd、chpasswd)


    一、用户账户配置文件介绍


    /etc/passwd 用户账户信息文件
    /etc/shadow 用户账户密码文件
    /etc/group 用户组信息文件
    /etc/gshadow 用户组密码所在文件(基本废弃)
    /etc/default/useradd 新增账户的默认属性配置
    /etc/login.defs 新增用户的属性信息

    总结:
    useradd 命令会修改/etc/passwd 、/etc/shadow、/etc/group 、/etc/gshadow (同时创建用户与用户组)
    passwd 命令会修改/etc/shadow
    groupadd命令会修改/etc/group 、/etc/gshadow

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    添加用户时,会修改上述4个文件---------文件md5值会发生变化
    [root@mm ~]# md5sum /etc/passwd /etc/shadow /etc/group /etc/gshadow
    2fe9f002726ed0a138d67cd44722f1a6 /etc/passwd
    c2ca41415dca17f1a3dc3c286a9b9bff /etc/shadow
    c475144a13d87a400b5e16fe6bd70baf /etc/group
    659ef4f533df0fa7e457f87755fb1c27 /etc/gshadow

    [root@mm ~]# useradd bingbing

    [root@mm ~]# md5sum /etc/passwd /etc/shadow /etc/group /etc/gshadow
    39d60eff90ecd0326fe59e6464b464ad /etc/passwd
    0aa8d3b157f042876ec0190a2808a377 /etc/shadow
    cee8bc6e85f9dfb9dc0a04e452e834f4 /etc/group
    cdfd26351f409ee32fca53a22ad15912 /etc/gshadow

    [root@mm ~]# grep bingbing /etc/passwd /etc/shadow /etc/group /etc/gshadow
    /etc/passwd:bingbing:x:1004:1006::/home/bingbing:/bin/bash
    /etc/shadow:bingbing:!!:17980:0:99999:7:::
    /etc/group:bingbing:x:1006:
    /etc/gshadow:bingbing:!:

    /etc/passwd文件 用户账户信息文件

    root: x: 0: 0: root: /root: /bin/bash
    用户名 密码 uid gid 用户描述 用户家目录 用户登录的shell

    CentOS7默认shell为bash,bash是sh的扩展,sh是bash的软连接
    [root@mm ~]# awk -F ":" '{print $NF}' /etc/passwd|sort|uniq -c
    6 /bin/bash
    1 /bin/sync
    1 /sbin/halt
    18 /sbin/nologin
    1 /sbin/shutdown

    [root@mm ~]# cat /etc/shells
    /bin/sh
    /bin/bash
    /usr/bin/sh
    /usr/bin/bash

    /etc/shadow 用户账户密码文件

    nobody 用户名
    :* 密码 (!!为未设置密码,设置密码后为长长字符串)
    :17834 最近更改密码的时间,自1970年1月1日起的天数
    :0 禁止修改密码的时间,即两次修改密码的最少间隔时间
    :99999 用户必须修改密码的天数,99999天约270年,自1970年1月1日起
    :7 提示修改密码的时间,即密码到期前7天提示修改密码
    : 密码过期到禁用账户的间隔天数
    : 用户被禁用的天数,自1970年1月1日起
    : 标志,保留字段

    /etc/group 用户组信息文件

    mail :x :12 :mail,postfix
    用户组名 用户组密码 gid 用户组成员

    /etc/default/useradd 新增账户的默认属性配置

    [root@ 55test ~]# cat /etc/default/useradd
    # useradd defaults file
    GROUP=100 #如果useradd没有指定组,并且/etc/login.defs中的USERGROUPS_ENAB为no或者useradd使用了-N选项时,此时该参数生效。创建用户时使用此组ID
    HOME=/home #在此目录下创建用户家目录
    INACTIVE=-1 #用户过期后账户停权,默认-1表示不启用过期停权
    EXPIRE= #账户过期日期,默认为空,表示账户永不过期
    SHELL=/bin/bash #新增用户默认shell
    SKEL=/etc/skel #默认文件(.bash_logout .bash_profile .bashrc)拷贝路径
    CREATE_MAIL_SPOOL=yes #创建邮件文件


    此文件修改方法:
    1、useradd -D -s /bin/sh #修改默认shell
    2、vim /etc/default/useradd

    /etc/skel 提供用户环境变量配置文件,由此目录向新增用户家目录添加环境变量配置文件
    /etc/login.defs 新增用户的属性信息
    [root@ 55test ~]# cat /etc/login.defs |grep -v "#"

    MAIL_DIR /var/spool/mail #邮件目录

    PASS_MAX_DAYS 99999 #密码修改间隔最大天数
    PASS_MIN_DAYS 0 #密码修改间隔最小天数
    PASS_MIN_LEN 5 #密码最小长度
    PASS_WARN_AGE 7 #密码过期前开始提示天数

    UID_MIN 1000
    UID_MAX 60000
    SYS_UID_MIN 201
    SYS_UID_MAX 999

    GID_MIN 1000
    GID_MAX 60000
    SYS_GID_MIN 201
    SYS_GID_MAX 999


    CREATE_HOME yes #默认是否为用户创建家目录

    UMASK 077 #默认umask

    USERGROUPS_ENAB yes #默认为用户创建用户组

    ENCRYPT_METHOD SHA512 #默认用户密码加密方式

    二、用户账户配置操作


    useradd 添加用户


    -s 用户登录shell
    -M 不创建家目录
    -u 指定uid
    -g 指定用户的属组
    -c 添加说明
    -d 指定家目录
    -e 用户登录截止日期。
    [root@ 55test ~]# useradd -u 1555 -M -s /bin/sh -e ' 20190730' -c "what" ppl

    [root@ 55test ~]# tail -1 /etc/passwd
    ppl:x:1555:1555:what:/home/ppl:/bin/sh

    [root@ 55test ~]# chage ppl -l
    Last password change : Jul 25, 2019
    Password expires : never
    Password inactive : never
    Account expires : May 05, 57250
    Minimum number of days between password change : 0
    Maximum number of days between password change : 99999
    Number of days of warning before password expires : 7


    chage 查看账户密码过期属性


    -l 显示属性信息
    -E 密码过期时间
    -I 密码过期后账户禁用间隔天数
    -m 密码修改间隔最小天数
    -M 密码修改间隔最大天数
    -W 密码过期前开始提示的天数
    [root@ 55test ~]# chage -l lili
    Last password change : Sep 21, 2019 #最近一次修改密码时间
    Password expires : Nov 20, 2019 #密码过期时间,过期后强制修改密码,-E参数修改
    Password inactive : Dec 20, 2019 #密码停权时间,即因密码过期而停用账户的时间,-I参数修改,默认-1表示不停权
    Account expires : never #账户过期时间
    Minimum number of days between password change : 7 #密码修改间隔最小天数,-m参数
    Maximum number of days between password change : 60 #密码修改间隔最大天数。-M参数
    Number of days of warning before password expires : 7 #密码过期前开始提示的天数,-W参数

    userdel 删除用户


    工作中常先用#注释账户来停用账户,一段时间后再删除账户
    -r 删除用户家目录及家目录中文件

    usermod 修改用户账户属性

    -s 用户登录shell
    -u 指定uid
    -g 指定用户的属组
    -c 添加说明
    -d 指定家目录
    -e 用户登录截止日期。

    [root@ 55test ~]# usermod -u 1556 -g kkk -s /bin/bash -e ' 20200730' -c "what the hell" ppl
    [root@ 55test ~]#
    [root@ 55test ~]# tail -1 /etc/passwd
    ppl:x:1556:1004:what the hell:/home/ppl:/bin/bash
    [root@ 55test ~]#
    [root@ 55test ~]# chage -l ppl
    Last password change : Jul 25, 2019
    Password expires : never
    Password inactive : never
    Account expires : Sep 20, 57277
    Minimum number of days between password change : 0
    Maximum number of days between password change : 99999
    Number of days of warning before password expires : 7
    [root@ 55test ~]#
    [root@ 55test ~]# id ppl
    uid=1556(ppl) gid=1004(kkk) groups=1004(kkk)


    passwd 修改密码


    --stdin 从标准输入接收密码
    -e 强制用户下次登录时修改密码
    -l 锁定账户
    -u 解除锁定
    -d 删除用户密码
    -i 密码过期后禁用账户的天数

    非交互方式修改密码:
    方法一:
    [root@localhost ~]# echo 12345 |passwd --stdin lili
    Changing password for user lili.
    passwd: all authentication tokens updated successfully.

    方法二:(CentOS 6.X执行成功,CentOS 7.X中切换用户时报错)
    [root@localhost ~]# echo 123 >pass
    [root@localhost ~]# passwd --stdin kkk <pass
    Changing password for user kkk.
    passwd: all authentication tokens updated successfully


    chpasswd 批量修改密码


    方法一:
    CentOS 6.X
    [root@localhost ~]# cat user
    lili:kll
    kkk:kll
    lll:kll
    [root@localhost ~]# chpasswd<user


    CentOS 6.X 与 CentOS 7.X
    [root@localhost ~]# cat user
    lili:kll
    kkk:kll
    lll:kll
    [root@ 55test ~]# chpasswd
    lili:kll #此处粘贴文本
    kkk:kll
    ppl:kll #输入结束后按ctrl+d


    方法二:
    [root@ 55test ~]# tail -4 /etc/passwd|awk -F ":" '{print $1":ppp"}'|chpasswd

    批量创建用户
    echo boy{1..10}|xargs -n1|sed 's#.*#useradd &;echo &|passwd --stdin &#'|bash
    echo boy{01..10}|xargs -n1|sed -rn 's#(.*)#useradd 1;echo 123456|passwd --stdin 1 #gp'|bash


    批量删除用户
    echo boy{1..10}|xargs -n1|sed 's#.*#userdel -r &#'|bash

    君子务本,本立而道生
  • 相关阅读:
    SVN为什么比Git更好
    vim的高亮查找操作
    Mac利用PD虚拟机安装Centos7
    学习MapReduce的计算原理
    hadoop-HA高可用集群部署
    HDFS命令操作和高可用
    初识hadoop及伪集群部署
    初步学习nginx
    小记--------maxwell启动失败解决
    小记--------spark资源调度机制源码分析-----Schedule
  • 原文地址:https://www.cnblogs.com/00huajiang/p/11263796.html
Copyright © 2011-2022 走看看