zoukankan      html  css  js  c++  java
  • 用户角色增删改

    Linux的用户管理

    Linux支持多个人使用同一个用户登录系统,Windows在修改组策略的情况下,也可以多个人使用同一个用户登录

    远程连接Linux的方式:SSH协议

    远程连接Windows的方式:RDP协议

    安卓手机(Linux系统):root 刷机,使用root用户登录系统

    /etc/passwd

    /etc/passwd:存放用户信息
    7列,以冒号为分隔符
    root:x:0:0:root:/root:/bin/bash
    第一列:用户名
    第二列:密码占位符
    第三列:uid
    第四列:gid
    第五列:注释信息
    第六列:家目录
    第七列:登录的shell
    
    uid 系统分类
    0 超级用户
    1-200 系统用户,系统自己创建的
    201-999 系统用户,不能登录系统
    1000+ 普通用户

    1585821617002

    /etc/shadow

    /etc/shadow:存放用户密码
    9列,以冒号为分隔符
    
    zls:!!:18351:0:99999:7:2:183519998:
    第一列:用户名
    第二列:用户密码(!! 和 * 都是没有密码)
    第三列:上一次该用户修改密码的时间(从1970年开始计算到上一次修改的天数)
    第四列:密码最短使用的天数
    第五列:密码最长使用天数
    第六列:密码快过期,7天之前,会提示修改密码
    第七列:密码过期后两天提示强制修改密码。否则无法登陆
    第八列:账户的失效时间,从1970年开始计算
    第九列:保留
    

    /etc/group

    # 如何查看组信息?这个组是否被创建
    [root@localhost ~]# cat /etc/group
    
    # 创建一个用户,会影响几个文件?
    4个文件:
    1./etc/passwd   :存放用户信息
    2./etc/shadow   :存放密码信息
    3./etc/group    :存放用户组信息
    4./etc/gshadow  :存放组密码信息
    
    当使用 `useradd zls` 创建用户时,会影响以上4个文件
    
    # 如何查看当前登录用户信息?
    id
    
    # 如何查看当前登录用户的uid?
    id -u
    
    # 如何查看gid
    id -g
    
    # 如何查看组?
    id -G
    

    useradd创建用户

    useradd zls -u 666 -g 666
    创建一个系统 用户,用来管理进程
    创建用户时:-g  指定 gid,一定是存在的组
    
    -u:指定uid       从 1000开始
    -g:指定gid       从 1000开始
    -G:指定附加组
    -M:不创建家目录   默认 创建家目录
    -c:添加注释
    -s:指定登录的shell    /sbin/nologin  /bin/bash
    -d:指定家目录   /home
    -r:创建uid为201-999的系统 用户, useradd zls  -r 可以登录,但是不创建 家目录
    

    一次性创建一百个用户

    sed:
    seq -w 100|sed -nr 's#(.*)#useradd zls1 && zls=`echo $RANDOM|md5sum|cut -c 1-10` && echo $zls|passwd --stdin zls1 && echo zls1:$zls >> zls#gp'|bash
    awk:
    seq -w 100|awk '{print "useradd tcy"$1,"&&","pass=echo $RANDOM|md5sum|cut -c 1-10","&&","echo $pass|passwd --stdin tcy"$1,"&&","echo tcy"$1":$pass >>pass.txt"}'|bash

    userdel删除用户

    userdel
    -r:删除和该用户一切 有关的文件
    

    usermod修改用户

    usermod
    -u:指定uid       从 1000开始
    -g:指定gid       从 1000开始
    -G:指定附加组
    -M:不创建家目录   默认 创建家目录
    -c:添加注释
    -s:指定登录的shell    /sbin/nologin  /bin/bash
    -d:指定家目录   /home
    -m:配合-d使用,迁移家目录
    -r:创建uid为201-999的系统 用户, useradd zls  -r 可以登录,但是不创建 家目录
    -U:解锁用户
    -l:更改用户名
    -L:锁定用户
    -a:配合-G使用,追加附加组
    

    组的基本管理

    ## 
    
    ```bash
    [root@localhost ~]# ll /etc/group
    -rw-r--r-- 1 root root 12120 4月   1 10:11 /etc/group
    
    [root@localhost ~]# tail -2 /etc/group
    hfls49:x:1779:
    hfls50:x:1780:
    
    第一列:组名
    第二列:密码占位符(组密码存在gshadow)
    第三列:gid
    第四列:组的附加成员,基本成员不显示。
    
    
    [root@localhost ~]# ll /etc/gshadow
    ---------- 1 root root 8902 4月   1 10:11 /etc/gshadow
    
    [root@localhost ~]# tail -2 /etc/gshadow
    hfls49:!::
    hfls50:!::
    
    第一列:组名
    第二列:组密码(!! 表示没有密码)
    第三列:组管理员
    第四列:组的附加成员,基本成员不显示
    
    ## 创建组命令:groupadd
    [root@localhost ~]# groupadd z1s
    
    [root@localhost ~]# groupadd z1s -g 6666
    
    # 创建gid范围是201-999之间的系统组
    [root@localhost ~]# groupadd -r z1s
    
    ## 修改组命令:groupmod
    [root@localhost ~]# groupmod z1s -g 6666
    
    # 修改组名
    [root@localhost ~]# groupmod z1s -n  z1s01
    
    ## 删除组命令:groupdel
    [root@localhost ~]# groupdel z1s01
    

    ## 用户的其他修改命令(了解)
    
    ```bash
     yum install -y finger
     
     # chfn
     [root@localhost ~]# chfn zls_qwe
    Changing finger information for zls_qwe.
    办公电话 []: 12345678911
    住宅电话 []: 1234567
    
    Finger information changed.
    
    
    # finger
    [root@localhost ~]# finger zls_qwe
    Login: zls_qwe        			Name: 曾老湿
    Directory: /home/zls_qwe5           	Shell: /bin/bash
    Office: 十维, +1-234-567-8911		Home Phone: 123-4567
    Last login 二 3月 31 09:52 (CST) on pts/0
    No mail.
    No Plan.
    
    # chsh
    [root@localhost ~]# chsh zls_qwe
    Changing shell for zls_qwe.
    New shell [/bin/bash]: /sbin/nologin
    Shell changed.
    
    # 查看用户的登录情况(稍微重要)
    # who    当前有几个用户连接了我的服务器
    
    [root@localhost ~]# who     
    登录的用户名  连接的终端     连接的时间          客户端IP
    root        pts/0        2020-03-31 09:00 (10.0.0.1)
    root        pts/1        2020-03-31 10:15 (10.0.0.1)
    
    # whoami   查看当前登录的用户
    [root@localhost ~]# whoami
    root
    
    [zls111@localhost ~]$ whoami
    zls111
    
    # w 
    [root@localhost ~]# w
     10:33:54 up 1 day, 13:39,  4 users,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    10.0.0.1         10:33    2.00s  0.00s  0.00s w
    root     pts/2    10.0.0.1         10:27    6:08   0.00s  0.00s -bash
    root     pts/3    10.0.0.1         10:28    1:30   0.00s  0.00s -bash
    root     pts/4    10.0.0.1         10:28    4:58   0.00s  0.00s -bash
    

    用户的扩展知识

    #创建用户指定id,家目录,密码等信息由两个文件所控制,分别是以下/etc/login.defs,/etc/default/useradd
    [root@localhost ~]# cat /etc/login.defs
    
    [root@localhost ~]# grep -i  '^[a-z]' /etc/login.defs
    # 指定创建用户后的邮件文件存放位置
    MAIL_DIR	/var/spool/mail
    
    #  密码,最长天数
    PASS_MAX_DAYS	99999
    
    # 密码最小天数
    PASS_MIN_DAYS	0
    
    # 密码最小长度
    PASS_MIN_LEN	5
    
    # 密码过期前7天 ,提示,密码要过期了,给老子改
    PASS_WARN_AGE	7
    
    # 普通用户的uid 最小值1000
    UID_MIN                  1000
    # 普通用户的最大uid 60000
    UID_MAX                 60000
    
    
    # -r创建的系统用户,201 - 999
    SYS_UID_MIN               201
    SYS_UID_MAX               999
    
    # 普通用户组的最小gid
    GID_MIN                  1000
    # 普通用户组的最大gid
    GID_MAX                 60000
    
    # -r创建的系统用户组,201 - 999
    SYS_GID_MIN               201
    SYS_GID_MAX               999
    
    # 默认创建家目录 
    CREATE_HOME	yes
    
    # 家目录umask
    UMASK           077
    
      0777        0777
    - 0022        0077
    -------      ------
      0755        0700
    
    # 在删除用户的时候,是否捆绑,把用户组也删除
    USERGROUPS_ENAB yes
    
    # 用户密码加密算法
    ENCRYPT_METHOD SHA512
    
    [root@localhost ~]# ll /etc/default/useradd
    -rw-r--r-- 1 root root 119 11月  5 2016 /etc/default/useradd
    
    [root@localhost ~]# cat /etc/default/useradd
    # 依赖于/etc/login.defs的USERGRUUPS_ENAB参数,如果为no,则在此处控制
    GROUP=100
    
    # 默认普通用户的家目录
    HOME=/home
    
    # 是否启用账号过期停权,-1表示不启用
    INACTIVE=-1
    
    # 账号终止日期(没有设置)
    EXPIRE=
    
    # 创建用户的默认shell
    SHELL=/bin/bash
    
    # 当用户,误删除了自己家目录下的环境变量。
    SKEL=/etc/skel
    
    -bash-4.2$ cp /etc/skel/.bash* ~/
    
    # 创建用户的同时,是否创建邮件文件
    CREATE_MAIL_SPOOL=yes
    

    用户的密码管理

    # 创建密码的规范 
    1.密码的长度最好大于10位字符
    2.密码中包含大小写字母数字以及特殊字符 ! @ # $
    3.不规则性(不要出现自己名字、公司名字、自己电话、等等简单的密码)
    
    [root@localhost ~]# passwd --help
    用法: passwd [选项...] <帐号名称>
    
    # 直接输入passwd,更改当前登录用户的密码
    [root@localhost ~]# passwd
    
    # passwd + 用户名,给指定用户设置密码
    [root@localhost ~]# passwd zls000
    
    # 使用非交互的方式设置密码给指定用户
    [root@localhost ~]# echo '123' | passwd --stdin zls000
    
    
    # md5sum,加密。并且做校验
    
    # 密码管理命令
    yum install -y expect  
    
    //2.mkpasswd密码生成工具, -l设定密码长度,-d数子,-c小写字母,-C大写字母,-s特殊字符
    [root@zls ~]# yum install -y expect   //需要安装扩展包
    [root@zls ~]# mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4
    |K&13bR)i/
    
    
    # 使用 三种方式,创建出来100个 用户,并且设置100个随机密码,并且记录密码,都可以登录
         格式:username:password
    
  • 相关阅读:
    电子书下载:Beginning ASP.NET 2.0 AJAX
    电子书下载:C# 4.0 How To
    电子书下载:Pragmatic Unit Testing in C# with NUnit
    7 个最好的.Net开源CMS系统
    电子书下载:Professional ASP.NET 2.0 Server Control and Component Development
    电子书下载:Beginning ASP.NET 2.0 Databases From Novice to Professional
    电子书下载:Professional .NET 2.0 Generics
    蛙蛙推荐:[算法练习]最长不完全匹配子串频率计算
    蛙蛙推荐:F#实现并行排序算法
    蛙蛙推荐:蛙蛙教你发明一种新语言之二代码生成
  • 原文地址:https://www.cnblogs.com/tcy1/p/12622049.html
Copyright © 2011-2022 走看看