1.Linux关键用户文件/etc/password文件
Root:x:0:0:root:/bin/bash
●用户名:代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号().,因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.).并且不使用连字符(—)和加号(+)打头。
●口令:一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。 因此,现在许多Linux系统(如SVR4) 都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一一个特殊的字符,例如x或者*。
●用户标识号:是一个整数,系统内部用它来标识用户。一般情况下它与用户名是--对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。通常用户标识号的取值范围是0 ~- 65535。0是超级用户root的标识号,1~ 99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中界限是500。
●组标识号:该字段记录用户所属的用户组。它对应着/etc/group文件中的一条记录。
●注释行描述:在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。
●主目录:用户起始的工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户目录的名称就是该用户的登录名。
●命令解析器:用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
2./etc/shadow文件
root:*:1 8487:0:99999.7:::
●账户名:账户名与/etc/passwd里面的账户名是一一对应的关系。
●密码:这里可以看到3类,分别是长字符串、*和! !其中,奇奇怪怪的字符串就是加密过的密码文件。星号代表帐号被锁定.双叹号表示这个密码已经过期了。长字符串是以$6$开头的,表明是用SHA-512加密的, $1$ 表明是用MD5加密的、$2$ 是用Blowfish加密的、$5$是用SHA-256加密的。
●修改日期:这个是表明上一次修改密码的日期与1970-1-1相距的天数密码
●不可改的天数:假如这个数字是8.则8天内不可改密码, 如果是0.则随时可以改。
密码需要修改的期限:如果是9999则永远不用改。如果是其其他数字比如12345.那么必须在距离1970-1-1的12345天内修改密码.否则密码失效。
●修改期限前N天发出警告:比如你在第五条规定今年6月20号规定密码必须被修改.系统会从距离6- 20号的N天前向对应的用户发出警告。
密码过期的宽限:假设这个数字被设定为M,那么帐号过期的M天内修改密码是可以修改的,改了之后账户可以继续使用。
●帐号失效日期:假设这个日期为x.与第三条- -样,X表示的日期依然是1970-1-1相距的天数.过了X之后.帐号失效。
●保留:被保留项.暂时还没有被用上。
3./etc/group文件
root:x:0:
● 组名:也就是是用户组的名称,有字母或数字构成。同/etc/passwd中的用户名一样, 组名也不能重复。
●组密码:和/etclpasswd文件- -样, 这里的"x"仅仅是密码标识,真正加密后的组密码默认保存在/letc/gshadow文件中。
不过,用户设置密码是为了验证用户的身份,那用户组设置密码是用来做什么的呢?用户组密码主要是用来指定组管理员的,由于系统中的账号可能会非常多,root 用户可能没有时间进行用户的组调整,这时可以给用户组指定组管理员,如果有用户需要加入或退出某用户组,可以由该组的组管理员替代root进行管理。但是这项功能目前很少使用,我们也很少设置组密码。如果需要赋予某用户调整某个用户组的权限,则可以使用sudo命令代替。
●组ID (GID);就是群组的ID号. Linux 系统就是通过GID来区分用户组的,同用户名- -样.组名也只是为了便于管理员记忆。
●组中的用户: 此字段列出每个群组包含的所有用户。需要注意的是.如果该用户组是这个用户的初始组,则该用户不会写入这个字段。