热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

文章标题:深度揭露Shadow文件背后的秘密。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

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


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

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

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

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

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

  第五个字段:密码的有效期限。这个字段表示密码更改后,距离下次一定要更改口令的天数。有时候系统管理员为了安全考虑,会给密码设置一个有效期限。当这个期限到后,就会提示用户更改密码。特别是当Linux服务器暴露在互联网上时,频繁更改密码确实是提高其安全性的一个重要手段。如输入60,就代表距离上次更改密码60天后,用户就必须更改一个新的口令。如果逾期不进行更改的话,就会受到警告,最后这个帐户可能就会被注销。如上图所示,如果这个字段的值为99999的话,就表示没有密码有效期的限制,用户可以永远是用这个密码。不过这是一个非常危险的做法,系统管理员还是需要慎用。

  第六个字段:密码失效前的警告。如系统管理员把密码的有效期限设置为60天。那么比较人性化的做法是在密码失效7天之前就开始警告用户,需要更改密码。而不是等到密码失效了,用户不能够利用原有帐户登陆了,才知道自己的密码失效。这个字段就是用来设置当离下次密码必须更改日期前多少天时,就开始警告用户需要更改密码。如上图所示,笔者这里设置为7(这是操作系统的默认值),就表示在密码逾期七天之前向用户提出警告。如果不需要警告信息的话,则这里显示的是空白。注意这根上面的有所区别,没有警告是以空白表示的,而不是以99999来表示。

  第七个字段:账户注销时间。如果用户不听系统的警告,在逾期后仍然没有及时更改密码,那么为了安全起见,系统可能会把这个帐户注销。要实现这个限制的话,就需要在这个字段中进行设置。这个字段就表示超过口令必须更改的日期多少天后,系统会自动将这个帐户注销掉。如这里设置为5天,而密码到期的时间为2009年6月1日。如果用户在5天之内没有更改密码,则到6月6日的时候,系统就会自动的将这个帐户注销,不允许用户登录。有时候,如春节放假回来之后,系统管理员可能不得不更改这个值,如需要延长。因为春节放假时间比较长,不少用户可能会因为没有及时更改密码而被注销。为此系统管理员需要延长这个期限,让用户有足够的时间去更改密码。

 

[1] [2] 下一页


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 如何修改路由器密码?路由器登录密码和无线密码的修改方法
    本文介绍了修改路由器密码的两种方法:一是修改路由器登录口令,需要进入路由器后台进行操作;二是修改无线连接密码,通过进入路由器后台的无线设置和无线安全设置进行修改。详细步骤包括复位处理、登录路由器后台、选择系统工具、填入用户名和用户密码、保存修改等。 ... [详细]
author-avatar
平凡兔兔2006
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有