ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 概念 用户在`Linux`系统中,是一个非常重要的组成部分,用户和权限是分不开的,在Linux中,可以给不同的用户分配不同的用户组,不同的用户组又可以有不同的权限。 # passwd 文件 讲到用户,首先就要提到`/etc/passwd`这个文件,这个文件中保存了本机所有的用户信息,每一行为一个用户信息,而每一行又分了7列,每列之间用冒号`:`分隔: ``` root:x:0:0:root:/root:/bin/bash ``` 以上内容解释: | 列 | 内容 | 含义 | | --- | --- |--- | | 1 | root | 用户名,用户登录系统时使用的用户名 | | 2 | x| 密码,此处为密码占位,密码在/etc/shadow文件中存储 | | 3 | 0 | UID,用户身份标识:0->特权用户;1-499->系统用户,1000+->普通用户 | | 4 | 0| GID,用户组标识号 | | 5 | root | 注释性描述,如存放用户全名等信息 | | 6 | /root | 用户家目录,用户登录系统后的默认位置 | | 7 | /bin/bash | 命令解释器, 用户使用的Shell,默认为bash | # shadow文件 此文件的位置为 /etc/shadow,存储的是用户的密码相关信息,一共分9列,每列之间用冒号`:`分隔: ~~~ root:$6$ct1EIPIsz7W/6t.f$26lwYx3iroCq9cIvmHYhb.o3ZzXfeemEhch/nl8yupczfcMVRi70mOvbTP8POtOysTn/jhYWFReUwlnY0EYJ7/::0:99999:7::: ~~~ 以上内容解释: | 列 | 内容 | 含义 | | --- | --- |--- | | 1 | root | 用户名,同 `/etc/passwd` 文件的用户名有相同的含义 | | 2 | $6$ct1EIPIsz7W/6t.f$26lwYx3iroCq9cIvmHYhb.o3ZzXfeemEhch/nl8yupczfcMVRi70mOvbTP8POtOysTn/jhYWFReUwlnY0EYJ7/ | 加密后的密码,其中密码又分为三部分,分别用$分隔,第一部分代表加密的方式(1表示MD5加密,密文长度22,5表示SHA-256加密,密文长度43,6代表SHA-512加密,密文长度86),第二部分为用于加密哈希的salt,第三部分为已加密的哈希 ,此字段有时也可能为!!或*,表示没有密码或密码已过期,是不能登录的系统的 | | 3 | | 最后一次修改时间,此值为1970年1月1日至最后一次修改密码时的间隔天数 | | 4 | 0 | 最小修改时间间隔,也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。| | 5 | 99999 | 密码有效期,经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段 | | 5 | 7 | 密码需要变更前的警告天数,与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 "再过 n 天你的密码就要过期了,请尽快重新设置你的密码!"。 | | 6 | | 密码过期后的宽限天数,也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。 | | 7| | 失效时间, 字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。 | | 8 | | 账号失效时间,同第 3 个字段一样,使用自  1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!| | 9 | | 保留,暂时没有特别意义| # group 此文件的位置为 `/etc/group`,存储的为用户组信息,一共分4列,如下: ~~~ root:x:0: ~~~ 以上内容解释: | 列 | 内容 | 含义 | | --- | --- |--- | | 1 | root | 用户名,同 /etc/passwd 文件的用户名有相同的含义 | | 2 | x | 组密码,通常用不上 | | 3 | 0 | 用户组ID | | 4 | | 组成员,当前用户组下的成员信息 |