在linux系统中,我们在/etc目录下可以看到passwd、passwd-;shadow、shadow-;group、group-文件,那么这些文件都存放什么信息呢?

1、/etc/passwd和/etc/shadow

此处是我的系统中passwd文件中的一部分内容,在passwd中的用户并不都是可登录用户(在shadow中有体现),许多账号都是系统运行所必须有的。

passwd中的信息的格式如下;

username:password:uid:gid:allname:homedir:shell

即:用户名:密码:用户ID:组ID:用户全称:家目录:登陆shell

注意:以前linux系统的密码直接存放在/etc/passwd文件中,但是这种方式是极度不安全的,后来发展到采用加密算法对原密码进行加密,将加密后的密码存放在/etc/passwd中,但是所有的用户都可以访问/etc/passwd文件,并且解密技术越来越强大,这种保存密码的方式也不安全。现在linux保存密码采用以下方式:用加密算法对密码进行加密,在/etc/passwd文件中密码部分用X表示,将加密的密码从/etc/passwd文件中分离出来保存到/etc/shadow文件中,并且/etc/shadow文件只能有超级用户访问,在shadow文件中密码也是用加密后的字符串保存。

以上是我系统中/etc/shdow文件的一部分

shadow文件保存的信息的格式为:

username:password:last_change:min_chage:max_chage:warm:failed_expire:expiration:reserved

即:用户名:密码:最近一次更改密码据现在的天数:两次更改密码最少间隔的天数:密码最长使用天数:距密码过期多少天前发出警告:密码过期后仍可继续使用的天数:密码到期时间:保留

之前提到在/etc/passwd中保存的用户并不都是可登录的用户,在/etc/shadow中密码部分如果是加密的字符串则表示是可登录用户,如果是*或者!!则表示不是登录用户。

2、/etc/group和/etc/gshadow

/etc/group保存的是系统中的组信息,一个组中可以包含多个用户,同时一个用户也可属于不同的组,但是每一个用户都只有一个主组,其它的都是附加组,当用户要访问其附加组中的文件时,需要先使用newgrp命令使其成为附加组中的成员。

以上是我的系统中group文件的一部分

group文件保存的信息格式为:

groupname:password:gid:members

即:组名:密码:组ID:组成员

注意:将用户分组是linux系统对用户管理及控制其访问权限的一种手段。

/etc/group文件中组的密码保存在/etc/gshadow中,处理方式同/etc/passwd相同,此处不再赘述。

以上是我的系统中gshadow文件的一部分

gshadow文件保存的信息格式如下:

groupname:password:admin:member

即:组名:密码:管理员(可有多个):组成员(可有多个)

密码、管理员和组成员都可为空,我的系统截图中密码和管理员都为空

3、/etc/passwd-;/etc/group-;/etc/shadow-;/etc/gshdow-

以上几个文件分别是/etc/passwd;/etc/group;/etc/shadow;/etc/gshdow对应的备份文件。可以用备份文件来恢复源文件。

我们可以用diff命令来查看源文件和备份文件的差别

diff命令返回结果的含义为:c 代表被标示的行被修改,d 代表被标示的行被删除,a 代表被标示的行被插入;字母前的数字代表源文件的行号,字母后的数字代表新文件的行号;< 符号之后的代表源文件的内容,> 符号之后的代表新文件的内容,--- 符号代表修改前后的分隔符。

Logo

更多推荐