我们先看一下用户用户组和密码相关文件:
1
2
3
4
5
6
7
8
9
|
[root❄centos7 ~]☭ ll /etc/passwd* /etc/shadow* /etc/group* /etc/gshadow*
-rw-r--r--. 1 root root 988 May 28 02:34 /etc/group
-rw-r--r--. 1 root root 975 May 28 02:29 /etc/group-
----------. 1 root root 801 May 28 02:34 /etc/gshadow
----------. 1 root root 790 May 28 02:19 /etc/gshadow-
-rw-r--r--. 1 root root 2247 May 28 02:19 /etc/passwd
-rw-r--r--. 1 root root 2247 May 28 02:19 /etc/passwd-
----------. 1 root root 1257 May 28 02:19 /etc/shadow
----------. 1 root root 1262 May 28 02:19 /etc/shadow-
|
我们可以看到每一个文件都有一个带-
后缀的文件。如果我们不小心破坏了原来的文件,可以用后面的带-
文件恢复,基本上能恢复所有的账号和密码。
下面进行破坏
CentOS 7 破坏模拟
1、 在/etc/passwd文件的首行root行加注释#
,保存退出:
1
2
|
#root:x:0:0:root:/root:/bin/bash
...
|
2、 然后重启服务器,发现进不去系统。
3、 然后我们重启下,然后再按e
修改启动方法:
4、 进入到这个界面后,找到linux16
那行:
5、 在这行的尾部添加init=/bin/bash
,然后按<Ctrl-x>
后启动:
6、 然后我们进入bash:
7、 这时候系统是无法写入的,我们要重新以rw
的模式remount
一下,命令为mount -o rw,remount /
8、 我们可以修复被修改的/etc/passwd
文件,记得先给原/etc/passswd
做个备份,然后再复制/etc/passwd-
文件去覆盖/etc/passwd
,(如果有其他文件如/etc/shadow等被破坏,也可以用此方法)
tips:备份是个好习惯,更改重要文件前最好都要先备份下。
9、重启服务器(reboot,init,shutdown等重启命令都无法使用,只能硬重启),正常进入操作系统。
CentOS 6 破坏模拟
1、 在/etc/shadow文件的首行root行加注释#
,保存退出:
2、 然后重启服务器,发现可以进入系统,但是输入root密码后,提示不正确(不输入密码直接进也进不去)。
3、 然后我们重启下,在这个界面按任意键进入启动菜单:
4、按a
修改启动内核启动参数:
5、进入到这个界面后,在后面输入init=/bin/bash
,然后按回车:
6、 然后我们进入bash:
7、 这时候系统是无法写入的,我们要重新以rw
的模式remount
一下,命令为mount -o rw,remount /
(和CentOS 7 一样,就不贴图了)
8、 我们可以修复被修改的/etc/shadow
文件,记得先给原/etc/shadow
做个备份,然后再复制/etc/shadow-
文件去覆盖/etc/shadow
,(如果有其他文件如/etc/shadow等被破坏,也可以用此方法)(和CentOS7 一样,就不贴图了)
tips:备份是个好习惯,更改重要文件前最好都要先备份下。
9、重启服务器(reboot,init,shutdown等重启命令都无法使用,只能硬重启),正常进入操作系统。