Linux入门真经-019用户与组的创建与管理
本节我们介绍如何去创建、管理用户和组。我们首先列举命令的使用方法,然后举例练习与说明。
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,你可以查看本文件的所有内容,每个参数的含义在英文注释中都有详细给出。
[[email protected] 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文件中的默认加密算法
[[email protected] 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
执行效果及验证如下:
[[email protected] ~]# useradd -u 4001 -c "centos7.5 admin" centos7_5
[[email protected] ~]# groupadd centos7
[[email protected] ~]# groupadd -g 5000sysadmin
[[email protected] ~]# groupadd netadmin
[[email protected] ~]# usermod -G centos7,sysadmin centos7_5
[[email protected] ~]# usermod -a -G netadmincentos7_5
[[email protected] ~]# cat /etc/passwd | grepcentos7_5
centos7_5:x:4001:4001:centos7.5admin:/home/centos7_5:/bin/bash
[[email protected] ~]# cat /etc/group | grepcentos7_5
centos7_5:x:4001:
centos7:x:4002:centos7_5
sysadmin:x:5000:centos7_5
netadmin:x:5001:centos7_5
[[email protected] ~]#
下一节我们介绍密码设置与用户切换