Linux 是多用户多任务操作系统,多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。

Linux操作系统的用户相关数据保存在以下文件中:

  • /etc/passwd : 用户基本信息
  • /etc/shadow : 用户密码信息
  • /etc/group : 用户群组基本信息
  • /etc/gshadow : 用户群组管理密码信息

/etc/passwd

/etc/passwd 中一行记录对应一个用户,每行记录被冒号( : )分隔,一共7个字段:

  • 第一列 : 账户名称
  • 第二列 : 密码占位符(x表示该账户需要密码才能登录,为空时,账户无须密码即可登录)
  • 第三列 : 账户UID
  • 第四列 : GID
  • 第五列 : 账户附加基本信息
  • 第六列 : 账户家目录位置
  • 第七列 : 账户登录Shell,/sbin/nologin表示账户无法登录系统。

/etc/shadow

/etc/shadow 记录用户密码信息,与 /etc/passwd 文件格式类似,每行记录用冒号( : )分隔,一共9个字段:

  • 第一列 : 账户名称
  • 第二列 : 密码,未设置密码时为!!,设置密码后加密显示
  • 第三列 : 上次修改密码的时间,值为距离1970年01月01日多少天
  • 第四列 : 密码最短有效天数,0表示无限制
  • 第五列 : 密码最长有效天数,默认位99999天,可以理解为永不过期
  • 第六列 : 密码过期后的宽限天数,即密码过期后,预留几天给账号修改密码
  • 第八列 : 账户失效日期,值为距离1970年01月01日多少天
  • 第九列 : 暂时保留未使用

/etc/group

/etc/group 记录用户群组基本信息,每行记录用冒号( : )分隔,一共4个字段

  • 第一列 : 用户组名称
  • 第二列 : 用户组密码占位符
  • 第三列 : GID
  • 第四列 : 用户列表,每个用户之间用,号分割。可以为空;如果为空表示用户组为GID的用户名

/etc/gshadow

/etc/gshadow 记录用户群组管理密码信息

  • 第一列 : 用户组名称
  • 第二列 : 用户组密码,如果为空或者 ! 表示没有密码
  • 第三列 : 用户组管理者,如果有多个用户组管理者,用 , 号分割
  • 第四列 : 用户列表