/etc/passwd是用来存储登陆用户信息:
[root@localhost test]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
linux所有用户的信息都在/etc/passwd中,占一行,共7段.
依次对应: 用户名:密码:uid:gid:描述信息:家目录:默认shell
1. 账号名称:即登陆时的用户名
2. 密码:早期UNIX系统的密码是放在这个文件中的,但因为这个文件的特性是所有程序都能够读取,所以,这样很容易造成数据被窃取,因此后来就将这个字段的密码数据改放到/etc/shadow中了.其中x仅仅表示用户登录需要密码,x位置为空,则登录无需密码.
3. UID:用户ID,每个账号名称对应一个UID,通常UID=0表示root管理员
4. GID:组ID,与/etc/group有关,/etc/group与/etc/passwd差不多,是用来规范用户组信息的
5. 用户信息说明栏: 用来解释这个账号是干什么的
6. 家目录:home目录,即用户登陆以后跳转到的目录,以root用户为例,/root是它的家目录,所以root用户登陆以后就跳转到/root目录这里
7. Shell:用户使用的shell,用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(BourneShell),csh(CShell),ksh(KornShell),tcsh(TENEX/TOPS-20typeCShell),bash(BourneAgainShell)等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。
另外一个很重要的东西是有一个shell可以用来替代让账号无法登陆的命令,那就是/sbin/nologin。如果最后默认的shell为/sbin/nolog 表示在shell中不能用该用户.该用户不能登录.
[root@localhost test]# cat /etc/shadow
root:$6$oO61Q1a0Enwvv1Qx$p64/NgihjT4CZsgrnJiRKaJfda5mksuiNyjHDwZPb18qRZHq7tXYBr/fmwyBxfbvI6w1O0IrP3WKwUhZmN/px1::0:99999:7:::
bin:*:17110:0:99999:7:::
[:]来进行分割,但是这里一共分出来九个栏目,每个栏目的解释如下:
1、账户名称
2、加密后的密码:如果为空,则对应用户没有口令,登录时不需要口令;星号代表帐号被锁定;双叹号表示这个密码已经过期了,故为*或者!!时都不能登录。$6$开头的,表明是用SHA-512加密;$1$表明是用MD5加密;
$2$ 是用Blowfish加密;$5$ 是用 SHA-256加密;
3、最近改动密码的日期(是一堆数字,这个是从1970年1月1日算起的总的天数)。
4、密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制.
5、密码需要重新变更的天数:密码经常更换才能保证安全,为了提醒某些经常不更换密码的用户,可以设置一个天数,强制让用户更换密码,也就是说该用户的密码会在多少天后过期,如果为99999则没有限制
6、密码过期预警天数:如果在5中设置了密码需要重新变更的天数,则会在密码过期的前多少天进行提醒,提示用户其密码将在多少天后过期
7、密码过期的宽恕时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
8、账号失效日期,过了这个日期账号就不能用了
9、保留的