Linux password 与 shadow
在早期的Linux系统中,用户名和密码是存放在同一个文件当中的就是/etc/passwd
文件当中,但是这个文件对所有用户都是可读的,其他的恶意用户可以轻易的猜测出用户的密码。后来为了安全起见加入了/etc/shadow
文件。用户密码的相关信息就存储在/etc/shadow
中,/etc/passwd
文件中只保存了用户的一些基本信息,并指出密码存在/etc/shadow
中。
passwd文件内容
上面每一行都代表一个用户,每一行又通过[:]分为七个部分,下面就说说这七项都代表什么。
- 账号名称
- 原先用来保存密码的,现在密码都放在/etc/shadow中,所以这里显示x
- UID,也就是使用者ID。默认的系统管理员的UID为0,我们添加用户的时候最好使用1000以上的UID,1-1000范围的UID最好保留给系统用。
- GID,也就是群组ID
- 关于账号的一些说明信息(暂时可以忽略)
- 账号的家目录,家目录就是你登陆系统后默认的那个目录
- 账号使用的shell
shadow 文件
忘了ubuntu中默认登陆的不开启root账户,而/etc/shadow文件只有root账户才能够访问,那怎么办呢,只好开启ubunt的root账户了,或者 sudo vi /etc/shadow即可,搞定之后shadow的内容如下面样式:
root:!:15324:0:99999:7:::daemon:*:15259:0:99999:7:::bin:*:15259:0:99999:7:::
这里也是由[:]来进行分割,但是这里一共分出来九个栏目,每个栏目的解释如下:
- 账户名称(密码需要与账户对应的嘛)
- 加密后的密码(总不能学CSDN放明文密码,是吧),如果这一栏的第一个字符为!或者*的话,说明这是一个不能登录的账户,从上面可以看出,ubuntu默认的就不启用root账户。
- 最近改动密码的日期(不是日期吗,咋是一堆数字,别急,这个是从1970年1月1日算起的总的天数)。那怎么才能知道今天距1970年1月1日有多少天呢?很简单,你改下密码,然后看下这个栏目中的数字是多少就可以了!
- 密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制
- 密码需要重新变更的天数:密码经常更换才能保证安全,为了提醒某些经常不更换密码的用户,可以设置一个天数,强制让用户更换密码,也就是说该用户的密码会在多少天后过期,如果为99999则没有限制
- 密码过期预警天数:如果在5中设置了密码需要重新变更的天数,则会在密码过期的前多少天进行提醒,提示用户其密码将在多少天后过期
- 密码过期的宽恕时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
- 账号失效日期,过了这个日期账号就不能用了
- 保留的