深度揭露Shadow文件背后的秘密

发表于:2011-8-05 10:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:spike_zheng    来源:51Testing软件测试网采编

  Linux操作系统Windows操作系统相比,最大的特点就是其所有的管理配置功能都可以通过更改配置文件来实现,而不需要通过累赘的图形化管理界面。如需要更改帐户的密码策略,就可以通过更改shadow这个配置文件来实现。如需要更改某个帐户的密码有效期,很少有系统管理员会利用图形化窗口去更改,而是在shell中直接来更改配置文件。如下图,就是用户帐号密码配置文件shadow的截图。笔者就以这个文件为例,谈谈如何通过修改配置文件来实现管理任务。

  虽然Linux操作系统的配置文件比起Windows操作系统的注册表等文件要容易理解的多,但是掌握shadow配置文件的基本结构与功能,仍然是系统管理员的一堂基础课。如上图所示,在shadow配置文件中,每条记录都有八个字段,每个字段之间利用冒号(:)进行分割。每个字段都完成一项特殊的控制。系统管理员通常需要更改某个字段来实现某个特殊的任务。

  第一个字段:用户名字。如上图,最前面的一个字段表示用户的帐号名。这个字段不用过多解释,不过系统管理员需要知道一点,在系统安装完毕后,除了root特权帐户外,系统还会自动建立不少的用户。这些用户往往用来完成一些特殊的作业。为此在没有了解这些帐户的用途之前,不要轻易更改系统创建的用户。而系统管理员的用户通常情况下都是保存在最后面。也就是说,其记录的顺序是按照帐号创建的先后顺序来保存的。这对于系统管理员迅速定位帐户信息能够提供一定的帮助。

  第二个字段:用户密码。用户名后面看起来一串没有含义的字符串,这就是密码。不过这是处理后的密码。为了操作系统的安全考虑,在这个配置文件中,密码是加密处理过的。如上图所示,笔者只是采用了简单的投影技术来加密口令,这个处理方法只防小人,不防君子。如果攻击者具有一定的专业知识,仍然可以破解这个口令。为此在一些安全性要求比较高的企业中,笔者建议大家采用MD5编码。如此的话,这里显示的字符串长度就会有256个字符,其破解的难度就会大的多。有时会这个字符串为空白,就表示这个帐户没有设置密码。另外用户需要注意的是,这个密码跟微软操作系统不同,其有最大的长度限制。如在RedHat9中其密码的最大长度为8位。如果用户设置的密码超过这个长度的话,则超过的位数操作系统会忽略掉。所以在设置密码的时候,用户最好不要依靠密码的长度来提高安全性;而最好是通过密码的复杂性,如字符与阿拉伯数字混用等手段来提高操作系统的安全。

  第三个字段:14165,表示密码最后修改的时间。系统管理员或者用户可以更改密码,然后操作系统会记录最后更改的时间。不过这里记录的时间读起来比较困难,其是以天数为单位的。如上图所示,14165就表示root帐户的密码最近一次更改距离现在有14165天。这个字段对于系统管理员没有什么用途。但是对于操作系统来说,确很有作用。其要通过这个参数来实现密码强制更改策略。

  第四个字段:密码两次更改之间,至少需要间隔的日数。有时候,密码过于频繁更改,对于应用系统的部署会有比较大的影响。如系统管理员在Linux操作系统上部署了文件共享服务。每个用户或者每个部门通过各自的帐户名与密码来访问这个文件服务器。此时,往往需要对这些用户的密码更改进行限制,如在一年之内不允许他们更改密码。因为如果更改密码的话,就需要在每个客户端上也进行相应的调整,这会增加维护的工作量。如上图所示,如果这个字段的值为0,则表示这个时间间隔的天数没有强制限制。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号