介绍用户和组相关命令之前,介绍几个文件:

/etc/passwd:保存用户属性信息

Linux命令-用户和组管理

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

/etc/shadow:保存用户的密码及密码相关属性信息

Linux命令-用户和组管理

用户名:加密后的密码:最近一修改密码时间:密码最短使用天数:密码最长使用天数:密码过期前多少天开始警告用户:用户非活动天数:用户锁定天数:保留字段

/etc/group:保存组属性信息

Linux命令-用户和组管理

组名:组密码占位符: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

Linux命令-用户和组管理

#    useradd -u UID USERNAME,新建用户时指定UID:范围1-65535

Linux命令-用户和组管理

#    useradd -g [GID|GRPNAME] USERNAME,新建用户时指定用户基本组:

   指定基本组时,该组必须存在;新建用户oracle的GID是1111,也就是mysql组;

[[email protected]~]#useradd -g mysql oracle

Linux命令-用户和组管理

#   useradd -c COMMENT USERNAME,新建用户时添加注释信息:

Linux命令-用户和组管理

#    useradd -d /path/to/somewhere USERNAME,新建用户时指定家目录:

Linux命令-用户和组管理

#   useradd -s /path/to/SHELL,指定默认shell:

可以cat /etc/shells查看有哪些shell可供使用

Linux命令-用户和组管理

------------------------------------------

   我们可以使用id,finger查看用户属性信息:

  1. id USERNAME:不加USERNAME,显示当前用户的信息;

Linux命令-用户和组管理

  id -u USERNAME:只显示uid;

Linux命令-用户和组管理

   同理,id -g USERNAME:只显示基本组gid;

   id -G USERNAME:显示用户的所有gid;

Linux命令-用户和组管理

   id -n:以name代替IDs,组合-ugG;

Linux命令-用户和组管理同理,-nu,-ng;

   2.finger USERNAME:可以显示login name,注释信息,家目录,默认shell等

Linux命令-用户和组管理

---------------------------------------------------

#   useradd -r USERNAME,创建系统用户:1-499的uid和gid是系统用户和系统组使用的

  虽然testd的finger信息显示其家目录是/home/testd,实际系统用户是没有家目录的

  你可以ls /home进行查看

Linux命令-用户和组管理

#    useradd -M USERNAME,新建用户时不创建家目录:和创建系统用户类似,家目录实际不存在

Linux命令-用户和组管理

#    useradd -m USERNAME,新建用户时必须创建家目录

  • 修改用户属性:

#   usermod [option] [argument] USERNAME

#    修改hadoop的登录名:

Linux命令-用户和组管理

#    修改hadoopa的UID:

Linux命令-用户和组管理

#    修改hadoopa的基本组:

Linux命令-用户和组管理

#    修改hadoopa的附加组:

   Linux命令-用户和组管理

   用户的基本组只有一个,附加组可以有多个,如果想给hadoopa增加附加组就需要使用-a选项:

   Linux命令-用户和组管理


#    修改hadoop的家目录:

    使用-m -d选项把原来家目录下的文件一并移动到新家目录

   Linux命令-用户和组管理

#    修改hadoopa的默认shell:

   Linux命令-用户和组管理

   Linux命令-用户和组管理

  • 删除用户:

    格式:userdel [option] USERNAME

#   userdel USERNAME:

   Linux命令-用户和组管理

   但是家目录和邮件都没有删除

   Linux命令-用户和组管理

#    userdel -r USERNAME:

   连同家目录一并删除

   Linux命令-用户和组管理

2.组管理

  • 新建组:

#    groupadd [option] GRPNAME

#    groupadd GRPNAME:

   自动生成的GID=/etc/group中最大UID+1

Linux命令-用户和组管理

#    groupadd -g GID GRPNAME:范围1-65535

Linux命令-用户和组管理

#    groupadd -r GRPNAME:

   创建系统组,那么GID一定是1-499之间的

Linux命令-用户和组管理

  • 修改组属性:

    groupmod [option] GRPNAME

#    groupmod -n new_group_name GRPNAME:

Linux命令-用户和组管理

#   groupmod -g GID GRPNAME:

Linux命令-用户和组管理

   删除组:

#    groupdel GRPNAME

Linux命令-用户和组管理