本篇主要深入介绍用户与用户组,具体包括用户与用户组标志符,用户管理(账号管理)。
1.用户标志符UID与GID
我们登录Linux系统时通常运用用户名,但是Linux系统只识别一组号码,因此该号码与用户名之间存在对应关系,记录在/etc/passwd文件中,称呼这组号码为UID即用户在系统中的唯一验证符号,同样的用户组也有用户组名与用户组ID的对应关系也存放在/etc/group文件中,称为GID。
登录系统时系统会去查找这两个文件,只有找到相应的ID之后才会进入到记录密码的文件/etc/shadow中去核对密码是否正确,进而确认是否可以进入系统。
1.1详解用户配置文件/etc/passwd
/etc/passwd文件的具体内容如下图所示:
其中每一行都代表一个账户信息,以下将详细介绍各个字段的含义:
- 第一个账号代表用户名称,与UID对应;
- 密码,但是/etc/passwd文件是所有用户都可以读取的,为了安全,密码存放在/etc/shadow中,所以这里显示x;
- UID这个就是用户标识符,Linux对UID的使用有以下限制:0用于系统管理员(root);1-499保留给系统用户使用,是惯例,用于系统上启用的服务希望用较小的权限去执行而不是直接使用root权限,所以就得提供这些服务的所有者账号,这些账号通常不可登录;1-99:各版本自行创建的系统账号,100-499若用户有系统账号的需求时,可以使用的账号UID。
- GID这个是用户组标识符,用户组相关信息也有类似的文件存放在/etc/group文件中;
- 用户信息说明列,没什么重要用途,用于说明账号的意义;
- 主文件夹,默认的用户主文件夹在/home/IDname中;
- shell,当用户登录后就会取得一个Shell来与系统的内核通信以进行用户的操作任务,默认你shell会使用bash就是在这里指定的。
1.2 详解账号密码文件/etc/shadow
/etc/shadow用于存放密码相关的信息,包括用户密码,文件具体结构如下图所示:
- 账号密码:与密码对应;
- 密码,经过编码加密之后的密码,只有root用户才可以读写;
- 最近更改密码的日期,注意该日期是以格林尼治日期为起始点1,每过一天就累加1计算所得;
- 密码不可被变更的天数,改密码最近一次被更改之后需要经过几天才可以被更改,如果是0的话,表示密码随时可以改动;
- 密码需要重新更改的天数,经常更改密码是哥好习惯,该字段的含义是最近一次修改密码之后必须多少天之内再次更改密码,必须在该天数范围内重置密码,否则该账号的密码会变为过期特性。
- 密码需要更改期限的警告天数,当账号的密码有效期限快要到的时候,系统将依据该字段给用户发出警告,提醒他密码再过多少天将要过期,尽快修改密码;
- 密码过期后的宽限时间,密码过期后,在宽限时间内登录系统,系统会强制要求你必须要修改密码才可以登录使用系统,但是如果在该宽限时间内没有登录系统,没有修改密码,name密码将会失效,账号再也无法使用该密码登录了;
- 账号失效日期,是指该账号在此字段规定的日期之后再也无法使用了;
- 最后一个字段是保留字段;
1.3详解用户组配置文件/etc/group
该文件结构相对简单,包含四个字段:
- 用户组名称;
- 用户组密码,一般不设置,提供给用户组管理原使用,同样的该密码存放在用户组密码文件中:/etc/gshadow;
- GID,用户组ID,与etc/passwd文件中的第四哥字段