关于Linux下用户和组的总结。


用户:获取系统资源权限的集合:


组:具有相同权限的用户的集合


用户组分类;

     1.普通用户组:可以加入多个用户


     2.系统组:一般加入一些系统用户


     3.私有组(也称基本组):当创建用户时,如果没有为其指明所属组,则就为其定义一个私有的用户组,名称与用户名同名. 


Linux下与用户与组相关的文件主要在/etc目录下,主要有 /etc/passwd  ,/etc/shadow , /etc/group , /etc/gshadow 四个文件。这四个文件的格式主要如下:


 1):/etc/passwd   :存放用户及其属性信息

Linux下用户和组之浅谈_用户和组

     用户名称:密码(存放在shadow文件中):UID:GID:用户注释信息:家目录:用户默认shell

 

 2):/etc/shadow   : 用户密码及相关属性

      

     用户名称:密码(采用sha512加密):密码最近被更改过的时间:密码过几天可以变更:密码过几天必须更改:密码过期提示用户:密码几天后会被锁定:用户失效时间

 

 3):/etc/group    :组及其属性信息

    

      组名称:组密码(存放在gshadow中):GID:附加组(附加组之间以逗号隔开)

 

 4):/etc/gshadow  :组密码及相关属性

     

     组名称:组密码:组管理员列表:以该组为附加组的用户列表(以逗号隔开)


了解完用户与组的相关文件,那在Linux系统中怎么创建用户和组,下面将从创建,修改,删除这三个方面探讨。

1:创建

       

(1):创建用户

      useradd [options] LOGIN

                创建用户的命令useradd,直接使用useradd 用户名,可以直接创建一个用户,那么系统会默认创建一个和用户名同名的组:

       useradd参数主要有:

        -u 创建用户时指定用户的UID

        -o 配合-u 选项,不检查UID的唯一性

        -g GID:指明用户所属基本组,可为组名,也可以GID

        -c "COMMENT":用户的注释信息

        -d HOME_DIR: 以指定的路径(不存在)为家目录

         -s SHELL: 指明用户的默认shell程序

        -G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在

        -N 不创建私有组做主组,使用users组做主组

        -r: 创建系统用户 

        -m  创建家目录,用于系统用户

        -M  不创建家目录,用于非系统用户

    (2):创建组

             创建的命令位groupadd

          groupadd [OPTION]... group_name

          groupadd还有一些参数:

                 -g 在创建组时加参数-g,可以指定组的GID,

                 -r 创建为系统组  

2:修改

    用户和组修改相关属性。

    (1):修改用户属性

      修改用户属性使用usermod [OPTION] login修改,还可以加一些参数进行修改

            -u UID: 修改UID

            -g GID: 修改GID

            -G GROUP1[,GROUP2,...[,GROUPN]]]:添加新的附加组,如果原来有附加组会覆盖掉,需要和-a一起使用。(这里要注意参数a需要放置在参数G之前)

            -s SHELL:修改shell

            -c 'COMMENT':修改注释信息

            -d HOME: 修改的新家目录不存在,不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项(这里要注意参数m需要放置在参数d之前)

            -l login_name: 修改用户的名称

            -L: 锁定用户 

            -U: 解锁用户

            -e 日期: 指明用户过期日期

            -f INACTIVE: 设定非活动期限

    (2):修改组属性

        修改组属性使用 groupmod [OPTION]... group,还可以加参数修改:

              -n group_name: 新名字  修改组的名称

              -g GID: 新的GID    修改组的GID

3:删除

    (1):删除用户

               删除用户的命令为:userdel 用户  。加参数-r包括用户的家目录一起删除(请确认家目录中没有重要数据 

    (2):删除组 

               删除组的命令为:groupdel 组名


另外在还有两个与用户相关的命令,为用户添加密码的命令:passwd   , 查看用户信息的命令:id


为用户添加密码的passwd命令还有一些参数,通过这些参数,可以对用户密码进行管理维护,passwd主要的参数有如下:

                 -d:删除指定用户密码

                 -l:锁定指定用户

                 -u:解锁指定用户

                 -e:强制用户下次登录必须修改密码

                 -n mindays: 密码指定最短使用期限

                 -x maxdays:密码的最大使用期限

                 -w warndays:密码过期前多少天开始警告

                 -i inactivedays:密码非活动期限

                 --stdin:从标准输入接收用户密码 echo "PASSWORD" | passwd --stdin USERNAME

   

查看用户的信息命令id,通过使用选项可以只显示部分信息。相关选项如下: 

                -u: 显示UID

                -g: 显示GID

                -G: 显示用户所属的组的ID

                -n: 显示名称,需配合ugG使用