介绍用户和组相关命令之前,介绍几个文件:
/etc/passwd:保存用户属性信息
用户名:密码占位符:UID:GID:注释信息:家目录:默认shell
/etc/shadow:保存用户的密码及密码相关属性信息
用户名:加密后的密码:最近一修改密码时间:密码最短使用天数:密码最长使用天数:密码过期前多少天开始警告用户:用户非活动天数:用户锁定天数:保留字段
/etc/group:保存组属性信息
组名:组密码占位符:GID:以此组为附加组的用户列表,如有多个以“,”分隔
/etc/gshadow:保存组密码
1.用户管理
新建用户:
格式:useradd [-option] [argument] USERNAME
# useradd hadoop,新建用户hadoop:
默认会新建与hadoop相同的组,并作为hadoop的基本组,用户hadoop的UID等于/etc/passwd中最大UID+1;如果/etc/group中没有与用户hadoop的UID相同的GID,则hadoop组的GID等于hadoop用户的UID,否则,hadoop组的GID等于/etc/group中最大GID+1
# useradd -u UID USERNAME,新建用户时指定UID:范围1-65535
# useradd -g [GID|GRPNAME] USERNAME,新建用户时指定用户基本组:
指定基本组时,该组必须存在;新建用户oracle的GID是1111,也就是mysql组;
[root@xufei~]#useradd -g mysql oracle
# useradd -c COMMENT USERNAME,新建用户时添加注释信息:
# useradd -d /path/to/somewhere USERNAME,新建用户时指定家目录:
# useradd -s /path/to/SHELL,指定默认shell:
可以cat /etc/shells查看有哪些shell可供使用
------------------------------------------
我们可以使用id,finger查看用户属性信息:
1. id USERNAME:不加USERNAME,显示当前用户的信息;
id -u USERNAME:只显示uid;
同理,id -g USERNAME:只显示基本组gid;
id -G USERNAME:显示用户的所有gid;
id -n:以name代替IDs,组合-ugG;
2.finger USERNAME:可以显示login name,注释信息,家目录,默认shell等
---------------------------------------------------
# useradd -r USERNAME,创建系统用户:1-499的uid和gid是系统用户和系统组使用的
虽然testd的finger信息显示其家目录是/home/testd,实际系统用户是没有家目录的
你可以ls /home进行查看
# useradd -M USERNAME,新建用户时不创建家目录:和创建系统用户类似,家目录实际不存在
# useradd -m USERNAME,新建用户时必须创建家目录
修改用户属性:
# usermod [option] [argument] USERNAME
# 修改hadoop的登录名:
# 修改hadoopa的UID:
# 修改hadoopa的基本组:
# 修改hadoopa的附加组:
用户的基本组只有一个,附加组可以有多个,如果想给hadoopa增加附加组就需要使用-a选项:
# 修改hadoop的家目录:
使用-m -d选项把原来家目录下的文件一并移动到新家目录
# 修改hadoopa的默认shell:
删除用户:
格式:userdel [option] USERNAME
# userdel USERNAME:
但是家目录和邮件都没有删除
# userdel -r USERNAME:
连同家目录一并删除
2.组管理
新建组:
# groupadd [option] GRPNAME
# groupadd GRPNAME:
自动生成的GID=/etc/group中最大UID+1
# groupadd -g GID GRPNAME:范围1-65535
# groupadd -r GRPNAME:
创建系统组,那么GID一定是1-499之间的
修改组属性:
groupmod [option] GRPNAME
# groupmod -n new_group_name GRPNAME:
# groupmod -g GID GRPNAME:
删除组:
# groupdel GRPNAME