一、用户账号管理
与用户相关的配置文件有两个,分别是 /etc/passwd 和 /etc/shadow 。前者用于保存用户名称,宿主目录、登录shell等基本信息,后者用于保存用户密码、账号有效期等信息。

/etc/passwd文件的每一行内容中包含了七个用 :分隔的配置字段,从左到右各配置字段的含义分别如下:

  • 第一个字段:用户账号的名称,也是登录系统时使用的识别名称;
  • 第二个字段:经过加密的用户密码字串,或者密码占位符 “x”;
  • 第三个字段:用户账号的UID;
  • 第四个字段:所属基本组账号的GID;
  • 第五个字段:用户全名,可填写与用户相关的说明信息;
  • 第六个字段:宿主目录;
  • 第七个字段:登录shell等信息,用户完成登录后使用的shell;

/etc/shadow文件中保存了各用户账号的密码等信息,共九个字段,从左到右各配置字段的含义分别如下:

  • 第一个字段:用户账号名称;
  • 第二个字段:被加密 过的密码,若显示为 “!!”或星号,则表示为此用户不能登录到系统 ,若为空,则表示该字段不需要密码即可登录到系统。
  • 第三个字段:上次修改密码的时间;
  • 第四个字段:密码的最短有效天数,就是自本次修改密码后,必须经过该天数才可再次修改密码,默认为0,表示不进行限制;
  • 第五个字段:密码的最长有效天数,就是自本次修改密码后,经过该天数后必须再次修改密码,默认为99999,表示不进行限制;
  • 第六个字段:提前多少天警告用户密码将过期,默认值为7;
  • 第七个字段:在密码过期多少天内禁用此用户;
  • 第八个字段:账号失效时间,默认为空,表示账号永久可用;
  • 第九个字段:保留字段,目前没有特定用途;

useradd命令——添加用户账号;
Linux中如何创建、管理及查询用户和组_第1张图片
useradd的基本命令格式为:useradd 【选项】 用户名

useradd命令中用于设置账号属性的几个常见选项如下:

  • -u:指定用户的UID,要求该UID号码未被其他用户使用;
  • -d:指定用户的宿主目录位置,(当和-M一起使用时,不生效);
  • -e:指定用户账号的失效时间,可使用 yyyy-mm-dd 的日期格式;
  • -g:指定用具的基本组名(或使用GID号);
  • -G:指定用户的附加组名(或使用GID号);
  • -M:不建立宿主目录,即使 etc/login.defs系统配置中已设定要建立宿主目录;
  • -s:指定用户的登录shell;
  • -r:创建一个系统的账号,这个账号的UID会有限制;
  • -c:添加关于该账号的描述信息,也就是设置/etc/passwd的第五栏的说明内容;
  • -f:后面接shadow的第七个字段,指定密码是否会失效,0为立即失效,-1为永不失效。

Linux中如何创建、管理及查询用户和组_第2张图片
Linux中如何创建、管理及查询用户和组_第3张图片
Linux中如何创建、管理及查询用户和组_第4张图片
用户账号具有可用的登录密码后,就可以从字符终端进行登录了

root用户可以使用passwd命令指定所有用户名为其设置密码 ,但普通用户只能单独执行passwd命令为自己更改密码;

使用passwd命令除了可以修改账号的密码以外,还能够对用户账号进行锁定、解锁,也可以将用户的密码设置为空(无须密码即可登录)。

常用的选项如下:

  • -d:清空用户的密码,仅使用用户名即可登录系统;
  • -l:锁定用户账户;
  • -S:查看用户账户的状态(是否被锁定);
  • -u:解锁用户账号;
  • -i:后面接“日期”,shadow的第七段,密码失效日期。
  • --stdin:可以通过来自前一个管线的数据,作为密码输入,常用在shell脚本中创建密码使用,格式为:echo "123.com" | passwd --stdin lv,命令的作用就是将“lv”用户的密码设置为123.com。
  • -w:后面接天数,shadow的第6字段,密码过期前的警告天数。
  • -x:后面接天数,shadow的第5字段,多久内必须要更改密码;
  • -n:后面接天数,shadow的第4个字段,多久内不可修改密码天数;

Linux中如何创建、管理及查询用户和组_第5张图片

usermod命令——修改用户账号属性

  • -u:修改用户的GID号;
  • -d:修改用户的宿主目录位置;
  • -c:后面接账号的说明;
  • -f:后面接天数,为shadow的第七字段;
  • -a:与-G何用,可“增加次要群组的支持” 而非“设置”。
  • -e:修改用户账号的失效时间,可使用YYYY-MM-DD的日期格式;
  • -g:修改用户的基本组名;
  • -G:修改用户的附加组名;
  • -s:指定用户的登录shell;
  • -l:更改用户账号的登录名称;
  • -L:锁定用户账号;
  • -U:解锁用户账号;

Linux中如何创建、管理及查询用户和组_第6张图片
Linux中如何创建、管理及查询用户和组_第7张图片

userdel命令——删除用户账号

Linux中如何创建、管理及查询用户和组_第8张图片

groupadd命令——添加组账号
Linux中如何创建、管理及查询用户和组_第9张图片

gpassd命令——添加、设置、删除组成员

  • -a:添加组成员用户;
  • -d:删除组成员用户;
  • -M:一次性添加多个组成员用户;

Linux中如何创建、管理及查询用户和组_第10张图片
Linux中如何创建、管理及查询用户和组_第11张图片

groupdel——删除组账号

Linux中如何创建、管理及查询用户和组_第12张图片

groups命令——查询用户账号所属的组

Linux中如何创建、管理及查询用户和组_第13张图片

id——查询用户账号的身份标识

Linux中如何创建、管理及查询用户和组_第14张图片

finger命令——查询用户账号的登录属性

Linux中如何创建、管理及查询用户和组_第15张图片

w命令——查询当前主机的用户登录情况

Linux中如何创建、管理及查询用户和组_第16张图片