Linux用户和组管理及相关命令详解

    概要:在学习Linux的初级阶段,用户管理是基础管理的重要部分,任何命令的运行,系统的正常运转,均离不开用户管理的内容,本篇就为大家介绍下Linux用户管理的一些基础概念和一些基础命令的用法。内容主要分为以下三个部分:

        1、用户和组的一些基础内容介绍

        2、用户管理命令的详解

        3、组管理命令的详解

    涉及到的相关命令主要有:useradd、usermod、userdel、passwd、su、groupadd、chage、groupmod、groupdel、gpasswd、groups、groupmems、id等相关命令

第一部分    用户和组管理的基础内容介绍

    1、用户和组类型

        linux系统上,用户的类型分为两大类:

            <1>管理员用户:具有对Linux系统运行一些管理权限的用户,系统上,初始的管理员用户默认为root,区分管理员用户的标识其实是           UID(可理解为用户的身份标识号码),UID为0,则代表是管理员,不论用户名是否为root

            <2>普通用户:普通用户有分为系统用户和普通登录用户

                系统用户:用来Linux系统上运行一些软件和服务的用户,大部分都是非登录式的,UID范围在CentOS6系列上默认是从1-499;在               CentOS7上默认是1-999

                普通登录用户:在系统上进行交互式的登录完成某些操作的用户,UID范围在在CentOS6系列上默认是从500+;在CentOS7上默认是               1000+

        Linux系统上,对应的组也分为两大类:

            <1>管理员组:具有管理员权限的用户所在的组,GID(组的身份标识)为0,默认是root组

            <2>普通用户组:

                系统组:GID范围在CentOS6系列上默认是从1-499;在CentOS7上默认是1-999

                普通组:GID范围在在CentOS6系列上默认是从500+;在CentOS7上默认是1000+

        

        Linux系统上用户和组的对应关系:

            主组:每个用户必须要有且仅有一个主组。在创建用户时默认是与用户名同名

            私有组:组内仅有一个用户的组

            附加组:一个用户可以有多个附加组

    2、用户和组管理涉及到的一些配置文件

        /etc/passwd    用户信息配置文件

            该配置文件里面主要是记录用户信息,每一行代表一个用户的信息,每一行分为7个字段,分别表示

            用户名:密码占位符:UID:GID:注释信息:家目录:默认shell

            如下图所示:

            passwd.png

        /etc/shadow    用户密码配置文件

            该配置文件主要定义了用户密码相关的配置,每一行代表一个用户的信息,每行有9个字段,分别表示

            用户名:加密后的密码:上次修改密码的日期:最小使用期:最长使用期:警告期:宽限期限:账户有效期;保留字段

            加密的密码:

                分为三个$分隔,第一个后面是加密算法;第二个后面是salt;第三个才是加密后的密码,CentOS6和CentOS上默认采取sha512单向加密算法进行加密

           上次修改密码的时期:如果值为0,则表示用户下次登录必须要更改密码,相对于1970-01-01经过的天数

               chage -d0 USERNAME  能改该用户的上次密码更改日期为0

               passwd -e  USERNAME  能改该用户的上次密码更改日期为0

           最小使用期:密码最短要使用多久

           最长使用期:密码最长要使用多久

                如果最长使用期小于最短使用期,则表示用户不能更改密码

           警告期: 在最长使用期到期之前,提前多少天提示用户

           宽限期限:最大使用期限到期后宽限多少天

           账户有效期:账号本身的有效期,以1970-1-1参考的天数

           保留字段:

           如图所示:

            shadow.png

        /etc/group    组信息配置文件

            分为4个字段: 组名:密码占位符:GID:用户列表

            当用户有多个时,每个用户之间用逗号分隔

            如图所示:

            group.png

        /etc/gshadow    组密码配置文件

            每行有4个字段:组名:加密后的密码:组管理员用户的账户:用户列表

            如图所示:

            gshadow.png

            

        /etc/default/useradd    添加用户时默认设置配置文件

            配置文件如图所示:

            QQ图片20160801201908.png

            GROUP:表示当用户创建利用-N选项不创建主组时,默认以哪个组作为主组

            HOME:表示创建用户时的家目录位置

            INACTIVE:表示非活动期限,也就是密码达到最大有效期后,用户的在这短时间内登录仍然能够修改密码,改密后正常使用

            EXPIRE:表示账号有效期

            SHELL:创建用户时用户的默认shell

            SKEL:定义用户家目录相关配置文件和环境变量文件的拷贝模板目录

            CREATE_MAIL_SPOOL:表示是否在创建用户时为其创建邮箱

        /etc/skel    创建用户时用户家目录文件来源模板文件

            blob.png

            

        /etc/login.def    用户相关配置和密码的主要配置文件

            login.png

            MAIL_DIR:用户邮件的目录        

            PASS_MAX_DAYS:密码最大有效期

            PASS_MIN_DAYS:密码最小有效期

            PASS_MIN_LEN:密码最短长度

            PASS_WARN_AGE:密码警告期

            UID_MIN:默认最小UID

            UID_MAX:默认最大UID

            GID_MIN:默认最小GID

            GID_MAX:默认最大GID

            CREATE_HOME:是否为用户自动创建家目录

            UMASK:创建家目录时默认的UMASK值


第二部分    用户管理命令详解

    1、useradd

       useradd命令:

         语法:useradd [OPTIONS] USERNAME

               useradd -D

               useradd -D [OPTIONS]

         选项:

             -u UID  指定UID

             -o  不检查UID的唯一性,可用来指定已存在的UID为自己的UID

             -g GROUP_NAME  指定主组

             -G GROUP_NAME1,GROUP_NAME2,…  指定附加组

             -c “DISCIPTION”  指定注释信息

             -d /PATH/TO/DIR   指定家目录,如果给定的目录要事先不存在

             -N   表示不创建以自己的名称命名的主组,而是以默认的user组作为自己的主组

             -r   表示创建系统用户,系统账号的家目录、邮箱目录都不会自动生成

             -s SHELL  指定用户SHELL类型

             -M   不创建家目录

             useradd -D  显示创建用户时的默认配置,是加上就是显示该文件的信息/etc/default/useradd

             useradd -D -s SHELL  改变/etc/default/useradd文件里面定义默认shell的内容

             useradd -D -b /DIR  改变/etc/default/useradd文件里面定义默认家目录的内容

          useradd.png

    2、usermod

       usermod命令:

         语法:usermod [OPTIONS] USERNAME

         选项:

             -u UID   指定新UID

             -g GID   指定行的基本组

             -G GROUP1,GROUP2,…   指定附加组,覆盖原有的附加组,要在原有的基础上增加要加-a选项

             -s SHELL   指定新的SHELL

             -c ‘DISCRIPTION’  指定新的注释信息

             -d  /PATH/DIR   指定新的家目录,新家目录中不会自动创建,原家目录中的文件不会同时移动至新的家目录,如果要创建新家目录的时候移动原家目录的数据,要同时使用-m选项

             -l USERNAME   指定新的用户名

             -U   解锁用户,实际是去掉密码前的!

             -L   锁定用户,相当于在/etc/shadow密码前加!

             -e YYYY-mm-dd    指明用户账号的过期日期

             -f  DAYS  指定账户密码的宽限期限

        usermod.png

    3、userdel

       userdel命令:userdel [OPTIONS]… USERNAME,默认删除用户不会删除用户的家目录和邮箱

         -r  可以删除用户的时候,同时删除家目录和邮箱

       userdel.png

    

    4、id

       id 命令:

         语法:id [OPTION]… [USERNAME]

         选项:

             -u  显示用户UID

             -g  显示主组GID

             -G  显示所在的全部的组ID

             -n  显示名称,而非ID

       id.png

    5、passwd

       passwd命令:修改密码

         格式:passwd [选项] 用户名

               passwd后不跟任何选项,表示修改自己的密码

               passwd 用户名:用于root用户修改其他用户的密码,不许要知道该用户之前的密码

         选项:

             -l,-u:锁定和解锁用户,相当于在/etc/shadow密码字段前加!和去掉!

             -d:清除用户的密码串;

             -e DATE过期期限,日期;

             -i DAYS:宽限期限;

             -n DAYS:密码最短使用期限;

             -x DAYS:密码最长使用期限;

             -w DAYS:密码警告期;

             对应是修改/etc/shadow里面相应的信息

             –stdin 密码来源重定向

             例:echo “123456” |passwd –stdin nwc 为nwc用户修改密码为123456

        passwd111.png

    6、chage

       chage命令:更改用户密码的过期信息

         格式:chage [选项] 用户名

         选项:

             -d:修改用户密码最后的修改日期

             -E:修改用户密码的过期期限

             -W:修改用户密码的警告期限

             -m:修修用户密码的最短有效期

             -M:修改用户密码的最长有效期

        chage.png

   

 

    7、su

       su命令:切换用户命令

       登录式切换:会重新读取用户的配置文件来重新初始化

         格式:su – 用户名

               su -l 用户名

       非登录式切换:不会读取目标用户的配置文件进行初始化

         格式:su 用户名

         注意:管理员可以无密码切换至其他任何用户,非管理员在切换用户时都需要给出目标用户的密码

       特殊用法:

         su – nwc -c COMMAND  表示不切换用户,而是仅以此用户身份运行指定的命令,命令执行完成后

       su.png

    8、其他用户管理相关命令

        groups [username]  查看当前用户属于哪些组:

        id [username]  查看当前用户属于哪些组:

        pwunconv   不转换密码,也就是将密码存在/etc/passwd中,而不是用占位符x代替密码,转换后/etc/shadow文件将消失

        pwconv   转换密码,将密码存在/etc/shadow中

        getent passwd [username]  相当于cat /etc/passwd中指定用户名的行

        getent shadow [username]  相当于cat /etc/shadow中指定用户名的行

        getent group [username]  相当于cat /etc/group中指定用户名的行

        getent gshadow [username]  相当于cat /etc/gshadow中指定用户名的行

        autoconfig –passalgo=md5 –update  可修改密码的加密算法

        chage -d0 USERNAME  能改该用户的上次密码更改日期为0

        newgrp [GROUPNAME] 临时切换当前用户的主组到指定的组

        strace ‘COMMAND’  可以查看命令在内部做了哪些动作

   


     

第三部分    组管理命令详解

    1、groupadd

      groupadd命令:添加用户组命令

        语法格式:groupadd [选项] group_name

        常用选项:

           -g GID:指定GID,默认是上一个组的GID+1

           -r:创建系统组

      groupadd.png

    2、groupmod

       groupmod命令:修改组的属性

         语法格式:groupmod [选项] group_name

         常用选项:

            -g GID:修改GID

            -n new_name:修改组名

       groupmod.png

    3、groupdel

       groupdel命令:删除组

         语法格式:groupdel [选项] group_name

         一般不用加选项,且不能删除组内有用户的组

       groupdel.png

    4、gpasswd

       gpasswd命令:给组设置修改密码(/etc/gshadow)

         格式:gpasswd [选项] 组名

         选项 :

             -a 用户名:向组中添加用户

             -d 用户名:删除组中用户

             不加选项代表给该组设置密码

       

    5、groupmems

       groupmems命令:直接修改配置文件,永久有效

         groupmems -l -g GROUP_NAME  显示组内有哪些用户

         groupmems -a USERNAME -g GROUP_NAME  向组内添加用户

         groupmems -d USERNAME -g GROUP_NAME  删除组内的用户

         groupmems -p -g GROUP_NAME   清空组内的所有用户

       groupmems.png

    6、groups

       groups [OPTIONS] USERNAME  查看用户属于哪些组

       groups.png

    

    7、利用newusers命令和chpasswd命令批量添加用户

        

        批量创建帐号:user1…user10

        uid:3000-3009,shell:/bin/csh,home:/testdir/username

        passwd:usernamepass

        注意家目录相关配置,使用户正常登录

        newusers.png

        chpasswd.png

        CP.png

原创文章,作者:M20-1倪文超,如若转载,请注明出处:http://www.178linux.com/27143

(0)
M20-1倪文超M20-1倪文超
上一篇 2016-08-02
下一篇 2016-08-02

相关推荐

  • 博客作业网络班22期+第6周(9.12-9.18)

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost /]# cp /etc/rc.d/rc.sysinit /tmp[root@localhost /]# sed -i 's/\…

    Linux干货 2016-09-19
  • 【盘点】2017年9-11月运维大会(时间+地点)

    到底未来的运维模式是什么?如今运维人员面临着怎样的转变? 活动家为您精心挑选整理了9-11月七场运维大会希望本文能帮您! CNUTCon 全球运维技术大会2017 大会简介: CNUTCon全球运维技术大会是由InfoQ主办的运维&容器技术盛会。大会为期2天,主要面向各行业对运维&容器技术感兴趣的中高端技术人员。秉承着“同步前沿技术、共享实战…

    2017-08-31
  • rsyslog配置详解,结合mysql+loganalyzer展现

        环境:Centos7.2 前言:系统日日夜夜不停地运行着,有这么一个守护进程,兢兢业业地不断记录它运行产生的日志,有不起眼的闲言碎语,值得管理员撇一眼的系统报错,也默默地接收来自进程的严厉警告,甚至在内核崩溃前夕,同样不遗余力记录着当时发生的情形。他是无言的记录者,没有特别的修辞,但他的记录的文字却掷地有声。本…

    系统运维 2016-10-25
  • bash编程初体验(一)

    bash编程初体验(一) 认识bash编程 变量与赋值 算术与逻辑运算 条件测试与退出状态 认识bash编程 Bash(GNU Bourne-Again Shell)是许多Linux发行版的默认Shell,我们要认识的bash中,就是在bash的环境下的一种编程。 众所周知,程序=指令+数据,由此也决定了两种不同的编程风格,过程过与对象式; 过程式:以指令为…

    Linux干货 2016-08-15
  • sed命令及vim编辑器

    sed[option]… 'script' inputfile…选项:-n:不输出模式空间内容的自动打印-e: 多点编辑-f /PATH/TO/SCRIPT_FILE: 从指定文件中读取编辑脚本-r: 支持使用扩展正则表达式-i: 原处编辑script:'地址命令' 1.地址定界:(1) 不给地…

    Linux干货 2016-08-11
  • linux发展史——兽人永不为奴

      了解历史才能判断趋势。既然我们已经打算跳入运维这个坑,了解先烈的历史事迹是必须的。为什么说是必须的呢?现在我们处于一个知识时代,资本在追着知识跑,像海银资本这种vc都看不起中国的市场了,已经带着中国的资本在万恶资本主义的老美投资了。 1计算机硬件组成   操作系统成为了非常重要人类创造生产力的场所,很多人都开始追本…

    Linux干货 2016-10-14

评论列表(1条)

  • M20-1--孔祥文
    M20-1--孔祥文 2016-08-04 13:35

    很好