zoukankan      html  css  js  c++  java
  • Linux用户组管理

    学习路线

    image

    用户的概念和分类

    1.用户指的是Linux操作系统中用于管理系统或者服务的人,用户管理的是相应的文件

    2.用户的分类:

        1) 超级用户:也叫管理员,root。该用户具有所有权限,UID并且绝对只能是0.

        2) 系统用户:也叫程序用户。一般都是由程序创建,用于程序或者服务运行的身份;

                           默认不允许登陆系统。

                           注:Centos6/RHEL6中,系统用户UID范围:1<=UID<=499;

                                 Centos6/RHEL6中,系统用户UID范围:1<=UID<=999

       3) 普通用户: 一般都是由管理员创建,用于对系统进行有限的管理维护操作。

                         默认可以登录系统。UID小于60000

    特别说明:

    1. 用户指的是操作系统上管理系统或服务的人,是人,就有相关的属性信息

    2. 用户的属性信息包括但不限于,如:家目录、唯一身份标识(UID)、所属组(GID)等

    用户创建及相关配置文件

    1.创建用户

    useradd [option] username
                -u:表示自定义UID
                    示例:  [root@localhost ~]# useradd -u 888 jf2
                            [root@localhost ~]# tail -1 /etc/passwd
                            jf2:x:888:888::/home/jf2:/bin/bash
                -g:表示使新增用户属于已经存在的某个组,后面可以跟组id,也可以跟组名。
                    示例:  [root@localhost ~]# useradd -g test jf3
                            [root@localhost ~]# tail -1 /etc/passwd
                            jf3:x:889:503::/home/jf3:/bin/bash
                -G:表示使用附加组
                    示例:  [root@localhost ~]# useradd -G test jf4
                            [root@localhost ~]# cat /etc/group
                            test:x:503:jf4
    
                -c:表示添加注释内容
                    示例:  [root@localhost ~]# useradd -c lianxi jf5
                            [root@localhost ~]# tail -1 /etc/passwd
                            jf5:x:891:891:lianxi:/home/jf5:/bin/bash
                -d:表示自定义用户的家目录
                    示例: [root@localhost ~]# useradd -d /home/test jf9
                            [root@localhost ~]# tail -1 /etc/passwd
                            jf9:x:895:895::/home/test:/bin/bash
                -M:表示不创建家目录
                    示例:  [root@localhost ~]# useradd -M jf10
                            [root@localhost ~]# su - jf10
                            su: 警告:无法切换到目录/home/jf10: 没有那个文件或目录
    
                -s:表示自定义shell
                    示例:[root@localhost ~]# useradd -s /sbin/nologin jf11
                    [root@localhost ~]# tail -1 /etc/passwd
                    jf11:x:897:897::/home/jf11:/sbin/nologin  
                -r:添加系统用户
                    示例:  [root@localhost ~]# useradd -r apache
                    [root@localhost ~]# tail -1 /etc/passwd
                    apache:x:498:498::/home/apache:/bin/bash

    2.用户信息的保存文件

    [root@localhost ~]# head -3 /etc/passwd
        root:x:0:0:root:/root:/bin/bash
        bin:x:1:1:bin:/bin:/sbin/nologin
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
        
    /etc/paswd由:分割成7个字段。
        ·第一字段为用户, 它代表用户账号的字符串。
        ·第二字段存放的是该账号的口令。
        ·第三个字段为一个数字,这个数字代表着用户标识号,也称uid。系统通过这个数字识别用户身份的。这里的0就是root,也就是说我们可以修改test用户的uid为0,那么系统会认为root和test为同一个账户。uid的取值范围是0-65535.Centos7的普通用户标识号从1000开始。
        ·第四个字段也是数字,标识组标识号,也称gid。这个字段对应着/etc/group中的一条记录。
        ·第五个字段为注释说明,没什么意义
        ·第六个字段为用户的家目录,当用户登录时,就出在这个目录下。
        ·最后一个字段为用户的shell。
    
    
    
    [root@localhost ~]# head -5 /etc/shadow
        root:$6$sO4k9N7S/4.hzm1G$hylKE5GxsZMN42kY1CkWi/qB03./1IvlwCJKGl/hQpb3uJnnsCYEdbfQlQ2v5Efmyjgt4BbcKyvi5Kfzwns.M.:17602:0:99999:7:::
        bin:*:17246:0:99999:7:::
        daemon:*:17246:0:99999:7:::
        
    /etc/shadow由:分割成9个字段。
        ·第一个字段为用户名
        ·第二个字段为用户密码,是该账号的真正密码。
        ·第三个字段为上次更改密码的日期,这个数字以1970年1月1日和上次更改密码的日期为基准计算而来。
        ·第四个字段为要过多少天才可以更改密码,默认是0,即不受限制。
        ·第五个字段为密码多少天后到期,即在多少天内必须更改密码。默认是9999
        ·第六个字段为免到期前的警告期限。
        ·第七个字段为账号失效期限。
        ·第八个为账号的生命周期。
        ·最后一个字段作为保留用的。

    用户信息的修改

    1.usermod(更改用户的)

    usermod [option] [参数]USERNAME
                -u;更改用户ID
                -g GID:更改用户的基本组
                -a -G:不使用-a选项,会覆盖原有的附加组
                -c:“注释内容”
                -d -m:指定用户的家目录,如果用户登录过,则加上-m选项,移动其此前的文件到新的家目录
                -s;更改用户的shell
                -l:更改用户的登录名(Login)
                -L:锁定账号
                -U:解锁账号

    2.chage(更改用户的账号信息)

    chage -operation USERNAME
        -d 修改用户最后一次更改密码的时间(为0时,登录系统时强制更改密码)
        -m 修改密码的最小存活期(几天后才能修改密码)
        -M 修改密码的最大存活期(每隔多少天更新一次密码)
        -W 修改密码过期前警告(过期前几天发出警告)
        -I (大写I)修改允许密码过期几天
        -E 修改账户过期时间
        -l(小写l) 列出账户的信息

    删除用户

    usermod -operation USERNAME
        -r: 删除用户并且移除其家目录和邮箱
        -f: 强制删除正在登陆的用户

    组管理

    1.核心功能:方便管理用户

    用户是操作系统上管理维护系统或服务的人 组是用户的一个属性信息

    任何一个用户默认都会有一个主组(默认组)

    一个用户除了主组也可以有多个其他组(附加组)

    2.组的创建和删除

    groupadd [-g GID] groupname
            示例:  [root@localhost ~]# groupadd test
                    [root@localhost ~]# groupadd -g 888 test1
                    [root@localhost ~]# tail -2 /etc/group
                    test:x:503:
                    test1:x:888:
    
                    
    3.删除组命令groupdel
        groupdel groupname
            示例:  [root@localhost ~]# groupdel test1
                    [root@localhost ~]# tail -2 /etc/group
                    jf1:x:502:
                    test:x:503:

    3.组成员管理

    gpasswd -operation GROUPNAME
    常见选项: 
    -a    添加用户到组 
    -d    从组中删除成员 
    -A    指定管理员 
    -M    指定组成员,可以批量添加用户到组中 
    -r    删除密码
    
    gpasswd 组名     给组设置密码

    用户信息的查看

    1.查看属性信息:id

    id [option] [username]
          -u:显示用户的ID号
          -g:显示用户所在的基本组的组ID号
          -G:显示用户所在的附加组的组ID号
          -un gn Gn:显示ID号相对应的名字
            示例:  [root@localhost ~]# id jf5
                    uid=891(jf5) gid=891(jf5) 组=891(jf5)
                    [root@localhost ~]# id -u jf5
                    891
                    [root@localhost ~]# id -un jf5
                    jf5

    2.查看用户账号信息:finger

    [root@localhost ~]# finger alice
    Login: alice                      Name: alice oscar
    Directory: /home/alice                  Shell: /bin/bash
    Never logged in.
    No mail.
    No Plan.


    用户的密码管理:passwd

    passwd [option] [USERNAME]
            --stdin:标准输入,即passwd从标准输入(键盘)读取密码
            用途:Linux中为了安全尽量避免捕获用户接口,即尽量不和用户交互
                    当用脚本批量创建用户和密码时不能自动执行(半夜时候)此时会用到--stdin
                    实例:[root@ns1 ~]# echo "aaa...111" |     passwd --stdin jf
                        更改用户 jf 的密码 。
                        passwd: 所有的身份验证令牌已经成功更新。
    
            -l:锁定用户
                示例:[root@ns1 ~]# passwd -l jf
                        锁定用户 jf 的密码 。
                        passwd: 操作成功
            -u:解除用户

    其他的用户相关指令

    1.检查用户账号完整性:pwck

    [root@ns1 ~]# pwck
    用户“adm”:目录 /var/adm 不存在
    用户“uucp”:目录 /var/spool/uucp 不存在
    用户“gopher”:目录 /var/gopher 不存在
    用户“ftp”:目录 /var/ftp 不存在
    用户“rpc”:目录 /var/lib/rpcbind 不存在
    用户“saslauth”:目录 /var/empty/saslauth 不存在
    用户“oprofile”:目录 /home/oprofile 不存在
    pwck:无改变

    2.显示当前登录到系统的用户名:whoami

    [root@ns1 ~]# su - jf
    [jf@ns1 ~]$ whoami
    jf
  • 相关阅读:
    财务高手-资本高手
    做到顶尖看三种书-大牛的书 工具书 教材书
    拓端tecdat|R语言使用HAR-RV预测实际波动率Realized Volatility案例
    拓端tecdat|WINBUGS对随机波动率模型进行贝叶斯估计与比较
    拓端tecdat|R语言机器学习实战之多项式回归
    拓端tecdat|R语言风险价值VaR(Value at Risk)和损失期望值ES(Expected shortfall)的估计
    拓端tecdat|TensorFlow 2.0 keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
    拓端tecdat|Python安装TensorFlow 2、tf.keras和深度学习模型的定义
    cookie绕过验证码登录
    [转]Python3 字典 items() 方法
  • 原文地址:https://www.cnblogs.com/feng0919/p/11182125.html
Copyright © 2011-2022 走看看