Linux入门真经-019用户与组的创建与管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/syaziou/article/details/81941490

本节我们介绍如何去创建、管理用户和组。我们首先列举命令的使用方法,然后举例练习与说明。

1、用户的创建与管理

useradd命令:创建用户

useradd [选项] 登录名

         -u,--uid UID:指定UID;

         -g,--gid GROUP:指定基本组ID,此组得事先存在;

         -G,--groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔;

         -c,--comment COMMENT:指明注释信息;

         -d,--home HOME_DIR:以指定的路径为用户的家目录;通过复制/etc/skel目录(所有用户家目录的模板目录)并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;

         -s,--shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;

         -r,--system:创建系统用户;

         useradd-D:显示创建用户的默认配置;(显示的是/etc/default/useradd文件的内容)

         useradd-D [选项]: 修改默认选项的值;修改的结果保存于/etc/default/useradd文件中;

注意:创建用户时的诸多默认设定配置文件为/etc/login.defs

我们可以看一下/etc/login.defs和useradd -D的信息来了解下默认配置。(此处为了过滤不必要的注释和空行,使用了正则表达式。正则表达式很快会在后面的章节介绍)下文中的注释是我手写上去的。如果你英语OK,你可以查看本文件的所有内容,每个参数的含义在英文注释中都有详细给出。

[root@localhost skel]# cat /etc/login.defs| grep -Ev "^$|^#"

MAIL_DIR         /var/spool/mail      #每个账户默认都有一个本地邮箱供用户间传信使用

PASS_MAX_DAYS     99999      #密码的最长使用期限(天)

PASS_MIN_DAYS      0         #密码的最短使用期限

PASS_MIN_LEN        5       #密码最小长度

PASS_WARN_AGE    7       #密码警告时间(如果不理解其含义请回上一节看看/etc/shadow的解说)

UID_MIN                  1000   #最小UID

UID_MAX                 60000   #最大UID

SYS_UID_MIN               201    #系统用户最小UID

SYS_UID_MAX               999    #系统用户最大UID

GID_MIN                  1000    #最小GID

GID_MAX                 60000    #最大GID

SYS_GID_MIN               201     #系统用户最小GID

SYS_GID_MAX               999     #系统用户最大GID

CREATE_HOME        yes                                        #默认创建家目录

UMASK           077                                     #默认系统遮罩码,讲权限时会介绍

USERGROUPS_ENAB yes                            #如果组内无成员,允许删除用户组

ENCRYPT_METHOD SHA512                     #在shadow文件中的默认加密算法

[root@localhost skel]# useradd -D

GROUP=100     #当默认不设置用户基本组时的用户归属,GID为100的组为user

HOME=/home  #家目录所在位置

INACTIVE=-1    #密码过期后在账户彻底失效前允许修改密码

EXPIRE=        #账号失效期,空表示账号永不失效

SHELL=/bin/bash   #默认shell

SKEL=/etc/skel   #家目录的默认骨架,默认拷贝此目录并更名

CREATE_MAIL_SPOOL=yes   #创建本地邮箱

更详细的说明参见man useradd中的Changing the default values子章节,体会原汁原味的英文解说。

用户创建后,属性仍然可以更改:

usermod命令:修改用户属性

usermod [选项] 登录

         -u,--uid UID:修改用户的ID为此处指定的新UID;

         -g,--gid GROUP:修改用户所属的基本组;

         -G,--groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;

         -a,--append:用于为用户追加新的附加组,必须同时在其后使用-G选项;

         -c,--comment COMMENT:修改注释信息;

         -d,--home  HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;

         -m,--move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;

         -l,--login NEW_LOGIN:修改用户名;

         -s,--shell SHELL:修改用户的默认shell;

         -L,--lock:锁定用户密码;

         -U,--unlock:解锁用户的密码;

userdel命令:删除用户

         userdel[选项] 登录

         r:删除用户时一并删除其家目录;

2、组创建与管理

groupadd命令:添加组

groupadd [选项] group_name

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

    -r: 创建系统组;

groupmod命令:修改组属性

groupmod [选项] GROUP

    -g GID:修改GID;

    -n new_name:修改组名;

groupdel命令:删除组

groupdel [选项] GROUP

3、示例与练习

创建用户centos7_5,注释信息为"Centos7.5 admin",UID为4001,基本组为centos7_5,附加组为centos7,sysadmin(GID为5000),为centos75新增附加组netadmin;

useradd -u 4001 -c "centos7.5admin" centos7_5

groupadd centos7

groupadd -g 5000 sysadmin

groupadd netadmin

usermod -G centos7,sysadmin centos7_5

usermod -a -G netadmin centos7_5

执行效果及验证如下:

[root@localhost ~]# useradd -u 4001 -c "centos7.5 admin" centos7_5

[root@localhost ~]# groupadd centos7

[root@localhost ~]# groupadd -g 5000sysadmin

[root@localhost ~]# groupadd netadmin

[root@localhost ~]# usermod -G centos7,sysadmin centos7_5

[root@localhost ~]# usermod -a -G netadmincentos7_5

[root@localhost ~]# cat /etc/passwd | grepcentos7_5

centos7_5:x:4001:4001:centos7.5admin:/home/centos7_5:/bin/bash

[root@localhost ~]# cat /etc/group | grepcentos7_5

centos7_5:x:4001:

centos7:x:4002:centos7_5

sysadmin:x:5000:centos7_5

netadmin:x:5001:centos7_5

[root@localhost ~]#

下一节我们介绍密码设置与用户切换

关注本公众号获取每日更新

猜你喜欢

转载自blog.csdn.net/syaziou/article/details/81941490
今日推荐