首页 > 代码库 > RHEL账号总结二: 账号的内容

RHEL账号总结二: 账号的内容

  了解完账号的基本概念之后,接着我们来学习下账号到底记录了那些信息。

  一、用户账号

  本机的用户账号数据存储于/etc/passwd文件中。使用 head命令查看passwd文件中的前三行内容:

技术分享

  /etc/passwd 中每一行代表一个用户的账号数据,每一行又使用冒号(:)分割出7个字段,每个字段的名称如下所示:

  USERNAME:PASSWORD:UID:GID:COMMENT:HOMERDIR:SHELL

  每一个字段的详细解释说明如下:

  USERNAME

  用户名称,用来表示用户数据的识别名称。用户名称最长为32个字符,可以包含下面的符号:

  • 大小写英文字母;
  • 下划线(_);
  • 连接线(-);
  • 数字。

  其中数字不能作为用户名称的第一个字符,尽量不要用大写英文字母。

  PASSWORD

  这个字段存储用户的密码数据。由于/etc/password文件的权限规定必须是0644,也就是rw-r--r--。因此,系统上的任何一个用户都可以直接读取/etc/passwd的内容。为了保护密码的安全,这个字段存储的是加密后的密码数据。

  如果这个字段出现的是“x”字符,则代表该用户的密码被存储到其他地方;如果这个字段是空的,则代表该用户不需要密码就可以登录。

  UID

  UID是用户标识符(User ID)的缩写。每一个用户都“应该”拥有一个唯一的UID,系统是根据UID来判断用户的身份的。如果两个使用者账号的UID相同,即使账号名称不同,系统也会认为这是用一个用户。

  GID

  GID是组标识符(Group ID)的缩写,这个字段记录的是用户的主要组的组标识符(Primary Group‘s GID)。

  COMMENT

  这个字段用来记录用户的全名与其他的批注数据,例如电话号码、通讯地址等。

  HOMEDIR

  这个字段用来记录登录系统后第一个要进入的目录,通常是用户的主目录,值得注意的是这个位置存储的必须是绝对路径。如果这个目录不存在,则在用户登录时会以根目录作为用户暂时的主目录。

  SHELL

  这个字段存储的是用户登录系统后要执行程序的完整路径名称。你可以在这个字段指定任何的程序,当用户登录系统时,就会执行这个程序。由于大部分的用户登录后,都是执行某个Shell程序,因此,习惯上我们称这个字段为“Shell”。

  二、组账号

  本机的组账号数据被存储在/etc/group文件中,使用head查看前三行内容:

  技术分享

  这个文件与/etc/passwd的格式类似,每一行代表一批组账号的资料。每一行的格式如下:

  GROUPNAME:PASSWORD:GID:MEMBERS

  每一行包括四个字段,每个字段以冒号(:)分隔开,每个字段的内容说明如下:

  GROUPNAME

  组名,与用户名一样,必须由大小写英文字母、数字、连接线(-)与下划线(_)符号组成,其长度必须在32个字符以内。

  PASSWORD

  组密码,也必须是加密后的密码。如果这个字段出现的是“x”字符,则代表该用户的密码被存储在其他地方。

  GID

  组标识符,与UID一样,GID也是32为的整数,范围为0~4294967295。

  MEMBERS

  这个字段存储着组成员的清单。请特别注意RHEL不支持巢状组(所谓的巢状组,指系统允许组作为其他组的成员。Windows系统支持),因此,这个字段记录的是用户账号的名称,而不是组名称。

  由于一个组可以拥有多个成员,因此在这个字段中,你可以指定多个成员,只要以一个逗号(,)分割即可。

RHEL账号总结二: 账号的内容