/etc/shadow文件的来历
在以前的Linux系统中,用户名、所在的用户组、密码(单向加密)等信息都存储在、/etc/shadow的文件中,很多软件通过调用这个文件来获取用户名和用户组,例如ls命令通过用户ID来找到/etc/passwd文件中的用户名。这意味着,所有用户都要拥有/etc/passwd的读权限,否则这些用户将不能执行ls等命令。但是这个文件保存了用户的密码,这将会导致安全风险。
现在,加密后的密码都存放在/etc/passwd文件中了,取而代之的是一个x,实际的密码保存在 /etc/shadow的文件中,这个文件只有root用户能够读取,其他用户都无法读取该文件。
各个字段的含义
从上面的例子我们可以看到,/etc/shadow中一行记录对应着一个记录,每行记录又被冒号(:)分隔,其格式和具体含义如下:
用户名,用户名与/etc/passwd里面的账户名是一一对应的关系。
加密后的密码,这里可以看到3类,分别是奇奇怪怪的字符串、*和!!其中,奇奇怪怪的字符串就是加密过的密码;如果密码是“*”或“!”,则表示不会用这个帐号来登录(通常是一些后台进程)。星号代表帐号被锁定,双叹号表示这个密码已经过期了。奇奇怪怪的字符串是以$6$开头的,表明是用SHA-512加密的,$1$ 表明是用MD5加密的、$2$ 是用Blowfish加密的、$5$是用 SHA-256加密的。
密码最后修改时间, 从1970年1月1日起计算的天数。
不可修改密码的天数,如果是0,则表示可以随时修改密码。如果是N,表示N天后才可修改密码。
密码可以维系的天数,如果设置为N,表示N天后必须更新密码。设置为99999通常表示无需更新密码。
在密码必须修改前的N天,就开始提示用户需要修改密码。
密码过期的宽限时间。
帐号失效时间,也是UNIX时间戳格式。
保留字段。
写在最后
以上就是对shadow文件的基本介绍了,暂时先写这么多,后面也会进行完善。
你知道的越多,你不知道的越多,人才们的 【三连】 就是我创作的最大动力,我们下期见!
注:如果本篇博客有任何错误和建议,欢迎人才们留言,你快说句话啊!