Linux中shadow文件详解
加密密码的文件,听上去似乎可以做点什么,然而实际上啥都做不了,一个鸡肋啊。
文件样例
myths@myths-X450LD:/home$ sudo cat /etc/shadow
root:!:16618:0:99999:7:::
daemon:*:16484:0:99999:7:::
bin:*:16484:0:99999:7:::
sys:*:16484:0:99999:7:::
sync:*:16484:0:99999:7:::
games:*:16484:0:99999:7:::
man:*:16484:0:99999:7:::
lp:*:16484:0:99999:7:::
mail:*:16484:0:99999:7:::
news:*:16484:0:99999:7:::
uucp:*:16484:0:99999:7:::
proxy:*:16484:0:99999:7:::
www-data:*:16484:0:99999:7:::
backup:*:16484:0:99999:7:::
list:*:16484:0:99999:7:::
irc:*:16484:0:99999:7:::
gnats:*:16484:0:99999:7:::
nobody:*:16484:0:99999:7:::
libuuid:!:16484:0:99999:7:::
syslog:*:16484:0:99999:7:::
messagebus:*:16484:0:99999:7:::
usbmux:*:16484:0:99999:7:::
dnsmasq:*:16484:0:99999:7:::
avahi-autoipd:*:16484:0:99999:7:::
kernoops:*:16484:0:99999:7:::
rtkit:*:16484:0:99999:7:::
saned:*:16484:0:99999:7:::
whoopsie:*:16484:0:99999:7:::
speech-dispatcher:!:16484:0:99999:7:::
avahi:*:16484:0:99999:7:::
lightdm:*:16484:0:99999:7:::
colord:*:16484:0:99999:7:::
hplip:*:16484:0:99999:7:::
pulse:*:16484:0:99999:7:::
myths:$6$GfWTYGIz$LmomqbhIzJbxA0arFMTs7r/JmIcZS8dyK1V4X/BilYTbqJecLYJWLTFTUoWcPKTF6iPH.kbj2ZDzSbb5d.PUE1:16618:0:99999:7:::
ftp:*:16708:0:99999:7:::
postfix:*:16709:0:99999:7:::
smmta:*:16709:0:99999:7:::
smmsp:*:16709:0:99999:7:::
guest-g1Jo1T:*:16711:0:99999:7:::
这是我的电脑上的文件,总体上和之前的文件一样,格式如下:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
文件简析
登录名
是与/etc/passwd文件中的登录名相一致的用户账号。
口令
字段存放的是加密后的用户口令,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。 一般存放的字符串就是加密过的密码文件。就是实际密码经过hash算法后的值。开头的数表示他用的是哪一种hash(可以在 man crypt 中查看到):
- 以$6$开头的,表明是用SHA-512加密的;
- 以$1$开头的,表明是用MD5加密的;
- 以$2$开头的,表明是用Blowfish加密的;
- 以$5$开头的,表明是用 SHA-256加密的。星号代表帐号被锁定; 如果是"*"或者"!"开头,则表示一般不能在Unix登陆。(呃。。不太清楚是啥意思)
最后一次修改时间
表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。一般这个时间起点是1970年1月1日。
密码不可被更动的天数
第四个栏位记录了这个帐号的密码需要经过几天才可以被变更!如果是 0 的话, 表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!(没啥大用)
密码需要重新变更的天数
由于害怕密码被某些‘有心人士’窃取而危害到整个系统的安全,所以有了这个栏位的设计。 你必须要在这个时间之内重新设定你的密码,否则这个帐号将会暂时失效。 而如果像上面的 99999 的话,那就表示,啊哈,密码永远不需要重新输入啦! (无聊的设定)
密码需要变更期限前的警告期限
当帐号的密码失效期限快要到的时候, 就是上面那个‘必须变更密码’的那个时间时, 系统会依据这个栏位的设定,发出‘警告’言论给这个帐号,提醒他‘再过 n 天你的密码就要失效了,请尽快重新设定你的密码呦!’,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。
密码过期的恕限时间
如果用户过了警告期限没有重新输入密码, 使得密码失效了,也就是说,你在‘必须变更密码的期限前,并没有变更你的密码!’ 那么该组密码就称为‘失效的密码’啰~怎么办?没关系,还有这个栏位的天数设计啊~ 意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。 而如果在这个天数后还是没有变更密码,那么恭喜您的帐号已经失效了!
帐号失效日期
这个日期跟第三个栏位一样,都是使用 1970 年以来的总日数设定。这个栏位表示: 这个帐号在此栏位规定的日期之后,将无法再使用。 这个栏位会被使用通常应该是在‘收费服务’的系统中, 你可以规定一个日期让该帐号不能再使用啦!(坑)
保留
最后一个栏位是保留的,看以后有没有新功能加入。
相关文章
- Linux解压文件到指定目录详解程序员
- Linux下掌握文件上传权限的方法(linux上传权限)
- Linux系统中连接数统计实现方法(linux连接数统计)
- 远程访问Linux服务器实现无缝运维(linux远程服务器)
- 夹深入比较:Linux 中两个文件夹的异同(linux比较两个文件)
- 大小Linux查看文件大小:一步步指南(linux查看打文件)
- 恢复Linux光盘目录恢复:找回丢失的文件(linux光盘目录)
- 搜狗拼音给 Linux 带来新体验(搜狗拼音输入linux)
- 压缩 WAR 文件:Linux 上的挑战(linux压缩war)
- Linux 驱动程序利用定时器改变运行状态(linux驱动定时器)
- 夹如何改变Linux下修改字体文件夹的方法(linux下字体文件)
- 如何使用U盘安装Linux系统(linux怎么用u盘安装)
- Linux 系统的分支研究与比较(linux的分支)
- Linux 下批量重命名文件的技巧(批量重命名linux)
- 命令Linux Touch命令:创建文件的简单方式(linux的touch)
- 如何在Linux中退出编辑器并保存文件(linux退出编辑保存)
- Linux文件打包指南(linux将文件打包)
- 安全性Linux 网银:最高安全性保障(linux网银)
- 掌握Linux中查看文件系统的常用命令df(linux常用命令df)
- 文件学习Linux:轻松修改文件(linux语言修改)
- Linux指针文件:指引编程的强大武器(linux指针文件)
- Linux虚接口详解:提高网络通信效率的利器(linux虚接口)
- Linux获取文件:轻松拥有想要的内容(linux get 文件)
- Linux 上提高系统性能的增强方法(linux 增加系统调用)
- Linux——让未来焕发智能之光(linux who is)
- Linux中的变量文件:解密优化工具(linux变量文件)
- Linux与Windows的差异:显而易见的对比(linux与windows的区别)