• Linux基础07 用户管理, 用户相关命令(创建, 修改, 删除), 用户创建配置文件, 命令提示符问题, 查看用户登录, 设置用户密码(设置随机复杂密码)


    一.用户管理
    1.什么用户?
    用户指的是能够正常登录Linux或windows系统

    2.用户的作用?
    1)系统中的进程,都是由用户来运行的
    2)管理文件的权限
    3)进程能否访问到文件,和用户有关

    3.和用户相关的文件
    /etc/passwd
    [root@oldboyedu opt]# cat /etc/passwd

    用户名称 密码占位符(密码在/etc/shadow) 用户uid 用户gid 注释信息 用户家目录 用户登录shell(sbin/nologin不能登录,sbin/shutdown登录就关机)
    root:   x:                         0:      0:     root:   /root:   /bin/bash

    /etc/shadow

    [root@zls ~]# tail -1 /etc/shadow
    zls1:!!:16312:0:99999:7:::

    [root@zls ~]# tail -1 /etc/shadow
    zls1:!!:16312:0:99999:7:::
    
    // /etc/shadow由 ':' 为分割符, 分为9个字段,每个字段的具体含义如下:
    字段名称 注释说明
    1.用户登陆名 //用户的账号名称
    2.加密后的密码 //用户密码,这是加密过的口令(未设密码时为!!, *)
    3.最近一次密码更改时间 //从1970年到最近一次更改密码时间之间过了多少天
    4.密码最少使用几天 //密码最少使用几天才可以更改密码(0表示无限制)
    5.密码最长使用几天 //密码使用多少天需要修改密码(默认99999永不过期)
    6.密码到期前警告期限 //密码过期前多少天提醒用户更改密码(默认过期提前7天警告)
    7.密码到期后保持活动的天数 //在此期限内, 用户依然可以登陆系统并更改密码, 指定天数过后, 账户被锁定
    8.账户到期时间 //从1970年起,账户在这个日期前可使用,到期后失效。
    9.标志 //保留


    4.用户的分类(约定)
    0:一定是超级管理员
    1-200:是系统用户,系统自建
    201-999:是系统用户,咱们创建 # 创建为useradd -r
    1000+:普通用户 # 也可以起系统, 只是约定一般不这样

    注意: 在CentOS7系统之前, UID1-499用于系统用户, 而UID 500+则用于普通用户


    二.用户的相关命令

    1)创建用户
        useradd  # useradd和adduser一样,adduser是useradd的软连接(centos7中才有)
       # useradd 用户名 # 创建用户(创建用户就有用户名对应的组,不用groupadd特别创建一个组)
    -u:指定uid -g:指定组(必须是已存在的组)(组名或者是gid) -s:指定用户登录的shell -c:加注释 -M:不创建家目录 -d:指定家目录 -G:指定附加组 -r:指定系统用户,并且不创建家目录 (该参数没什么用处) # useradd -r mysql -u 203 #创建系统用户, 通过-u指定创建用户id # useradd zls101 -u 366 -g od #通过-g加入od组, -g后面也可以写组id(gid) # useradd php -u 1114 -g od -s /sbin/nologin #创建无法登陆的用户,通过指定shell(既然不能登录,那么家目录也没用) # useradd elk -u 1115 -g od -s /sbin/nologin -c 'elk start service' -M #-c添加注释, -M不添加家目录(不能登录没有意义) # useradd egon -d /opt/egg #指定家目录地址 查看用户的命令
      id:查看当前用户
      id username # 查看其它用户信息
    设置用户密码 passwd
      # passwd 用户名 # 设置用户密码
    创建组 groupadd  
      # groupadd 组名称 # 创建组
    # 创建zls用户,指定UID5001,基本组students 附加组sa,dba 注释信息:one newB user, 登陆的shell:
    /bin/bash   groupadd student   groupadd sa   groupadd dba   useradd zls -u 5001 -g student -G sa,dba -c 'one newB user' -s /bin/bash 2)修改用户 usermod '-u' 修改用户的UID '-g' 修改用户所属的基本组GID '-G' 修改用户附加组, 使用逗号隔开多个附加组, 覆盖原有的附加组 '-a' 追加更多的附加组, 必须和-G使用: -aG 追加附加组 '-m' 家目录迁移, 必须和-d一起使用, 移动用户的家目录到新的位置 '-d' 指定用户的家目录新位置 '-c' 修改用户的注释信息 '-s' 更改用户使用的shell '-l' 更改用户登录名 '-L' 锁定用户 '-U' 解锁用户 # usermod ldc -s /sbin/nologin #修改ldc用户为不可登录 # usermod zls -G od #把zls用户的附加组改为od # usermod zls -aG od,dba #把zls用户的附加组添加od, dba # usermod zls1 -d /opt/zls1 -m #家目录迁移, 必须和-d一起使用, 移动用户的家目录到新的位置 # usermod ldc -L(使用后,ldc登陆着还能用,断开再连接无论输如任何密码都无法登录) 3)删除用户 userdel -r:删除用户并删除家目录 # userdel -r egon #删除egon用户同时删除其家目录

    三.用户创建配置文件

        useradd创建用户时,系统会以/etc/login.defs、/etc/defaults/useradd两个配置文件作为参照物
        1./etc/login.defs
        (grep -vE '^#|^$' /etc/login.defs)
        #用户的邮件目录
        MAIL_DIR        /var/spool/mail
        
        #密码的最大天数
        PASS_MAX_DAYS    99999
        #密码最小使用天数
        PASS_MIN_DAYS    0
        #密码最小长度
        PASS_MIN_LEN    5
        #剩多少天警告
        PASS_WARN_AGE    7
        #普通用户最小uid
        UID_MIN                  1000
        #普通用户最大uid
        UID_MAX                 60000
        #系统用户最小uid
        SYS_UID_MIN               201
        #系统用户最大uid
        SYS_UID_MAX               999
        #普通用户最小gid
        GID_MIN                  1000
        #普通用户最大gid
        GID_MAX                 60000
        #系统用户最小gid
        SYS_GID_MIN               201
        #系统用户最大gid
        SYS_GID_MAX               999
        #是否创建家目录(如果改为false,即使创建用户-d指定家目录地址也没用)
        CREATE_HOME    yes
        #创建家目录的权限(目录权限为777-077=700
        UMASK           077
        #创建用户的同时 创建组,删除用户的同时,删除组
        USERGROUPS_ENAB yes
        #密码的 加密算法
        ENCRYPT_METHOD SHA512
    
        
        2./etc/default/useradd
        #依赖于/etc/login.defs的USERGRUUPS_ENAB参数,如果为no,则在此处控制(从100开始创建组)
        GROUP=100
        #普通用户家目录
        HOME=/home
        #是否启用账号过期停权  -1表示不启用
        INACTIVE=-1
        #账号的终止日期 不设置表示不启用
        EXPIRE=
        #默认登录shell
        SHELL=/bin/bash
        #用户的家目录 环境变量(如果用户家目录环境变量没了, 命令提示符错误, 可以从这里拷)
        SKEL=/etc/skel
        #创建邮件
        CREATE_MAIL_SPOOL=yes

    企业级故障案例:

    # 在当前用户的家目录下,想要删除所有文件,执行了如下命令
    [root@db04 ~]# rm -fr .*
    # 结果再次登录时,命令提示符不对了
    -bash-4.1#
    # 解决方法
    -bash-4.1# cp /etc/skel/.bash* .
    # 再次登录 即可恢复
    [root@db04 ~]#

    四.查看用户登录

        whoami:查看当前登录的用户
        
        who
        [root@oldboyedu ~]# who
        登录的用户    终端设备    登录时间          登录的IP
        oldboy1     pts/0      2019-06-27 18:01  (192.168.15.132)
        root        pts/1      2019-06-27 18:01  (10.0.0.1)
    
        w
        [root@oldboyedu ~]# w
        系统时间    服务器运行时间(重启重算)  当前登录的用户数    CPU的负载:    1分钟   5分钟   15分钟(按核数计算)
        18:14:51   up 0 min,            1 user,          load average: 0.75,  0.19,  0.06
        10:13:35   up 249 days,  2:09,   1 user,          load average:  5.61,  2.03,  0.76
    
        用户    终端设备    连接的IP      登录时间    空闲   CPU使用率
        USER     TTY      FROM         LOGIN@    IDLE   JCPU   PCPU  WHAT
        root     pts/0    10.0.0.1     18:14     3.00s  0.02s  0.00s w
    
    # 查看当前用户终端设备    
        tty    (通过ps杀死对应的终端设备,该终端就关了)

    五.设置用户密码(用户没密码无法登录)

        passwd
        --stdin : 非交互设置密码
        [root@oldboyedu ~]# passwd             修改当前用户的密码(普通用户只能改自己)
        [root@oldboyedu ~]# passwd qiudao01        修改指定用户的密码(root)
        
        #普通用户(无法修改指定用户密码)
        [oldboy1@oldboyedu ~]$ passwd oldboy1
        passwd: Only root can specify a user name.
        
        修改自己的 还得是输入旧密码  密码要符合 密码的复杂性
        [oldboy1@oldboyedu ~]$ passwd 
        
        需要注意:
        1.普通用户只能更改自己的密码(密码必须满足8位字符)
        2.管理员用户能更改任何人的密码(密码长度无限制)
        
        非交互设置密码
        [root@oldboyedu ~]# echo 123 |passwd --stdin(标准输入) 用户名
        [root@oldboyedu ~]# echo 123 |passwd --stdin ldc
        
        设置随机密码
        echo $RANDOM :生成随机数
        md5sum:给随机数再加密
        cut -c 1-10 : 取前10个字符
        tee:将原本输出的内容保存到文件中  # -a参数  写入不会覆盖
        # 生成随机数加密剪切,存入文件并设置密码给ldc1用户
        [root@localhost ~]echo $RANDOM|md5sum|cut -c 1-10|tee pass.txt|passwd --stdin ldc1

    设置随机复杂密码(扩展)

    # 安装
    yum install -y expect mkpasswd -l:密码长度 -d:数字 -c:小写字母 -C:大写字母 -s:特殊字符 [root@localhost ~]# mkpasswd -l 20 -d 2 -c 2 -C 2 -s 14 [root@localhost ~]# mkpasswd -l 20 -d 2 -c 2 -C 2 -s 14|tee pass.txt|passwd --stdin ldc1
  • 相关阅读:
    55.UIbutton点击切换颜色
    54.NSJSONSerialization类进行json解析(字符串“UTF-8解码”)
    53.设置内容的行间距
    第二阶段冲刺7
    第二阶段冲刺6
    第十四周
    第二阶段冲刺5
    第二阶段冲刺4
    第二阶段冲刺3
    第二阶段冲刺2
  • 原文地址:https://www.cnblogs.com/ludingchao/p/15690288.html
Copyright © 2020-2023  润新知