在linux中,口令文件在/etc/passwd中,早期的这个文件直接存放加密后的password,前两位是"盐"值,是一个随机数。后面跟的是加密的password。为了安全,如今的linux都提供了 /etc/shadow这个影子文件。password放在这个文件中面,而且是仅仅有root可读的。

以下来分析一下/etc/passwd文件,他的每一个条目有7个域。各自是名字:password:用户id:组id:用户信息:主文件夹:shell 比如:test:x:509:510::/home/test:/bin/bash

在利用了shadow文件的情况下。password用一个x表示,普通用户看不到不论什么password信息。

假设你细致的看看这个文件。会发现一些奇怪的username,她们是系 统的缺省账号,缺省账号是攻击者入侵的经常使用入口。因此一定要熟悉缺省账号,特别要注意password域是否为空。以下简介一下这些缺省账号

adm拥有账号文件,起始文件夹/var/adm通常包含日志文件

bin拥实用户命令的可运行文件

daemon用来运行系统守护进程

games用来玩游戏

halt用来运行halt命令

lp拥有打印机后台打印文件

mail拥有与邮件相关的进程和文件

news拥有与usenet相关的进程和文件

nobody被NFS(网络文件系统)使用

shutdown运行shutdown命令

sync运行sync命令

uucp拥有uucp工具和文件

传统上,/etc/passwd文件在非常大范围内是可读的,由于很多应用程序须要用他来把UID转换为username。比如,假设不能訪问/etc/passwd,那么ls -l命令将显示UID而不是username。可是使用口令推測程序。具有加密口令的可读/etc/passwd文件有巨大的安全危急。

所以出现了影子文件/etc/shadow。

影子口令系统把口令文件分成两部分:/etc/passwd和/etc/shadow。影子口令文件保存加密的口令;/etc/passwd文件里的password所有变成x。Shadow仅仅能是root可读,从而保证了安全。/etc/shadow文件每一行的格式例如以下:

username:加密口令:上一次改动的时间(从1970年1月1日起的天数):口令在两次改动间的最小天数:口令改动之前向用户发出警告的天数:口令终止后账号被禁用的天数:从1970年1月1日起账号被禁用的天数:保留域。

比如:root:$1$t4sFPHBq$JXgSGgvkgBDD/D7FVVBBm0:11037:0:99999:7:-1:-1:1075498172

bin:*:11024:0:99999:7:::

daemon:*:11024:0:99999:7:::缺省情况下,口令更新并不开启。

假设你的系统没有启动影子文件,那么执行pwconv程序。

有关命令

pwconv

依据/etc/passwd文件生成/etc/shadow。它把全部口令从/etc/passwd移到/etc/shadow中。

pwunconv

将/etc/shadow中的信息尽可能地恢复到/etc/passwd。

(转)linux口令相关文件(/etc/passwd和/etc/shadow)的更多相关文章

  1. linux下锁定关键文件/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab

    锁定/etc/passwd./etc/shadow./etc/group./etc/gshadow./etc/inittab,锁定关键的系统文件可以防止服务器提权后被篡改 1.对关键文件进行加锁,任何 ...

  2. Linux账号和密码文件 /etc/passwd和/etc/shadow

    Linux系统中,所有用户(包括系统管理员)的账号和密码都可以在/etc/passwd和/etc/shadow这两个文件中找到,(用户和密码就放在文件中,不怕被其他人看的或者修改吗?/etc/pass ...

  3. 账号管理文件/etc/passwd和/etc/shadow

    /etc/passwd和/etc/shadow是Linux中两个账号管理的重要文件 一./etc/passwd        这个文件中每一行代表一个账号,有几行就代表系统中存在几个账号.有些账号是系 ...

  4. Linux用户相关文件之用户信息文件

    1.文件地址: /etc/pssswd -rw-r--r--. 1 root root 936 10月 6 12:50 /etc/passwd 2.文件内容: xiaol_1:x:501:501::/ ...

  5. linux系统相关文件和操作

    查看内核: uname -r [root@server0 ~]# uname -r -.el7.x86_64 [root@server0 ~]# 查看版本: cat  /etc/redhat-rele ...

  6. Linux用户相关文件之密码文件

    1.文件地址: /etc/shadow ----------. 1 root root 842 10月 6 13:09 /etc/shadow 2.文件内容: xiaol_1:$6$NdCAnK3y$ ...

  7. Linux用户相关文件之组文件

    组信息文件: 1.文件地址: /etc/group -rw-r--r--. 1 root root 492 10月 6 21:56 /etc/group 2.文件内容: xiaol:x:500: 3. ...

  8. linux用户和组管理,/etc/passwd 、/etc/shadow和/etc/group 文件内容解释

    与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等: /etc/passwd 和/etc/s ...

  9. linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释

    •/etc/passwd文件用于存放用户账户信息,每行代表一个账户,每个账户的各项信息用冒号分割,例如: root:x:::root:/root:/bin/bash username:password ...

随机推荐

  1. IOS从视频中获取截图

    从视频中获取截图: NSString *movpath =[[NSBundle mainBundle] pathForResource:@”iosxcode4″ ofType:@”mov”]; mpv ...

  2. ThinkPHP 分页实现

    TP3.2框架手册,有一个数据分页,不过每次都要写太多的代码,还有中文设置等有些麻烦,做为程序开发者,有必要整理下: O.先看效果图 一.分页方法 /** * TODO 基础分页的相同代码封装,使前台 ...

  3. javassist AOP

    对于AOP,这个概念,不用解释,主要用途很多,我这里主要是为了后续研究如何实现APM做准备.前面研究了动态代理实现AOP,考虑到性能的问题,改用javassist直接修改直接码实现! javassis ...

  4. 获取php的配置

    ini_get — 获取一个配置选项的值 返回值 成功是返回配置选项值的字符串,null 的值则返回空字符串.如果配置选项不存在,将会返回 FALSE. <?php /* 我们的 php.ini ...

  5. Web Api Session开启会话支持

        1.WebApi中默认是没有开启Session会话支持的.需要在Global中重写Init方法来指定会话需要支持的类型           //代码如下 public override voi ...

  6. Android项目---listview的那些属性,常用却不常见

    一.在xml中,常用到的属性有 android:cacheColorHint="#00000000" //设置拖动背景色为透明 android:dividerHeight=&quo ...

  7. 微软企业库3.1DIY编译使用(数据库连接符写在企业库DLL里)

    1.在winform项目app.config文件中去掉"PublicKeyToken=b03f5f7f11d50a3a"(不然无法加载使用新编译的企业库DLL文件) 2.在企业库所 ...

  8. svn错误:更新源码出现校验和不匹配问题

    svn 的文本校验和不匹配: 最近在更新自动化源代码的时候出现了一个错误:svn: Checksum mismatch while updating.... 查了下google,原来是在更新源码出现校 ...

  9. [SQL]sql server中如何直接查询存储过程EXEC返回的结果集?

    Declare @T Table (iDay VARCHAR(),iNum DECIMAL(,),yuxiang DECIMAL(,)) Insert @T --EXEC [dbo].[BSP0101 ...

  10. (考研)java网络编程

    dog   jb 叫什么...  从飞秋得到IP地址 自己学会的用命令 ipconfig 编写java程序看ipimport java.net.*; public class Test{ public ...