• linux学习-用户组管理


    每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理,linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建

    用户组的操作实际上是对/etc/group文件的更新

    增加新的用户组:groupadd 选项 用户组

    1. [root@192 /]# groupadd --help
    2. 用法:groupadd [选项] 组
    3. 选项:
    4. -f, --force 如果组已经存在则成功退出
    5. 并且如果 GID 已经存在则取消 -g
    6. -g, --gid GID 为新组使用 GID
    7. -h, --help 显示此帮助信息并推出
    8. -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
    9. -o, --non-unique 允许创建有重复 GID 的组
    10. -p, --password PASSWORD 为新组使用此加密过的密码
    11. -r, --system 创建一个系统账户
    12. -R, --root CHROOT_DIR chroot 到的目录

    此命令向系统中增加一个新组group1,新组的组标识号在当前已有的最大组标识号的基础上+1

    [root@192 /]# groupadd group1
    

    增加新组的时候添加组标识号并查看/etc/group:可以看到我们创建的group1和group2

    1. [root@192 /]# groupadd -g 101 group2
    2. [root@192 /]# cat /etc/group
    3. postdrop:x:90:
    4. postfix:x:89:
    5. huangzheng:x:1002:
    6. group1:x:1003:
    7. group2:x:101:

    删除一个已存在用户组:groupdel 用户组

    [root@192 /]# groupdel group1
    

    修改用户组的属性:groupmod 选项 用户组

    1. [root@192 /]# groupmod --help
    2. 用法:groupmod [选项] 组
    3. 选项:
    4. -g, --gid GID 将组 ID 改为 GID
    5. -h, --help 显示此帮助信息并推出
    6. -n, --new-name NEW_GROUP 改名为 NEW_GROUP
    7. -o, --non-unique 允许使用重复的 GID
    8. -p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
    9. -R, --root CHROOT_DIR chroot 到的目录

    修改用户组的组标识:

    1. #将用户组的组标识从101改为102
    2. [root@192 /]# groupmod -g 102 group2

    修改组名:

    1. #将组名group2改为group3
    2. [root@192 /]# groupmod -n group3 group2

    切换组:如果一个用户同时属于一个组,那么用户可以在用户组之间切换,以便举有其他用户的权限,用户在登陆后,使用newgrp切换用户组,这个命令的参数就是用户组,将当前用户切换到用户组

    1. 将当前用户切换到root用户组
    2. [root@192 /]# newgrp root

    与用户和用户组相关的信息存放在/etc/passwd,/etc/shadow,/etc/group中

    /etc/passwd文件是用户管理工作设计的最重要的一个文件,linux中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了用户的一些基本属性,这个文件对所有用户都是可读的

    /etc/passwd中的每一行记录对应一个用户,每行记录又被冒号(:)分割为7个字段,其格式和具体含义如下

    1. [root@192 /]# cat /etc/passwd
    2. root:x:0:0:root:/root:/bin/bash
    3. bin:x:1:1:bin:/bin:/sbin/nologin
    4. huangzheng:x:1002:1002::/home/huangzheng:/bin/bash

    用户名:口令:用户标识符:组标识符:注释型描述:主目录:登录shell

    1)"用户名"是代表用户账号的字符串:通常不超过8个字符,并且由大小写字母,/,数字组成,用户名中不能由(:),冒号在这里是分隔符,为了兼容,登录名中不要包含(.),不要使用(-),(+)打头

    2)口令一些系统中,存放加密的用户口令字。真正的加密后的用户口令存放在/etc/shadow,/etc/passwd文件的口令字段中只存放一个特殊的字符,例如‘X’或者‘*’

    3)用户标识符是一个整数,系统内部用它来标识用户:一般情况下它与用户名是一一对应的。如果有几个用户名对应的用户标识号是一样,系统内部将他们视为同一个用户,但是它们可以有不同的口令,不同的主目录以及不同的登录shell等。通常用户标识号从100开始,0是超级用户的标识符,1-99由系统保留,作为账号管理,普通用户的标识从100开始。在linux中,这个界限是500.

    4)组标识号字段记录的是用户所属的用户组:它对应着/etc/group文件中的一条记录

    5)注释性描述字段记录着用户的一些个人情况,例如用户真实姓名,电话,地址等,这个字段没有实际的用途

    6)主目录:就是用户的起始工作目录,是用户登录到系统之后所处的目录

    7)用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。

    Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。

    系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。

    8)除此之外还有一些伪用户,这些用户在/etc/passwd文件中也占一条记录,但是不能登录,因为它们的登录shell为空,它们的存在主要是方便系统管理,满足相应的系统进程对文件属性的要求

    /etc/shadow:此文件中的记录行与/etc/passwd的意义对应,它由pwconv命令根据/etc/passwd中的数据自动产生,他的文件格式与/etc/passwd类似,若干个字段组成,字段之间用":"隔开。这些字段是:登录名:加密口令:最后一次修改时间:最小间隔时间:最大间隔时间:警告时间:不活动时间:失效时间:标志

    拓展:

    1. "登录名"是与/etc/passwd文件中的登录名相一致的用户账号

    2. "口令"字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 { ./0-9A-Za-z }中的字符,则对应的用户不能登录。

    3. "最后一次修改时间"表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCO Linux 中,这个时间起点是1970年1月1日。

    4. "最小时间间隔"指的是两次修改口令之间所需的最小天数。

    5. "最大时间间隔"指的是口令保持有效的最大天数。

    6. "警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

    7. "不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。

    8. "失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

    /etc/group:用户组的所有信息都存放再/etc/group文件中

    1. ast login: Fri Oct 28 22:37:28 2022
    2. [root@192 ~]# cat /etc/group
    3. root:x:0:
    4. bin:x:1:

    将用户分组是linux系统中对用户经行管理级控制访问权限的i中手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的组是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。

    用户组的所有信息都放在/etc/group中,此文件的格式也类似于/etc/passwd问价,由":"隔开若干个字段,这些字段有:组名:口令:组标识号:组内用户列表

    1. "组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

    2. "口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。

    3. "组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。

    4. "组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

     

  • 相关阅读:
    小Z的拼数游戏c++(求 解)
    大数据毕业设计选题推荐-智慧小区大数据平台-Hadoop-Spark-Hive
    [记忆化dfs]leetcode2400:恰好移动 k 步到达某一位置的方法数目(medium)
    【20220121】Voice conversion
    【C语言|关键字】C语言32个关键字详解
    华为enspDHCP分配实验
    JavaScript Promise
    linux环境部署
    TPC-C 、TPC-H、TPC-DS和SSB测试基准(Benchmark)介绍
    【NLP开发】Python实现聊天机器人
  • 原文地址:https://blog.csdn.net/weixin_61407147/article/details/127561939