UNIX 系统 root 口令的恢复 |
| 发布时间: 2012/7/7 10:51:43 |
|
root 作为 UNIX 系统的超级用户,在管理和维护系统方面有着最大的权限,它的口令管理是系统管理员的重要工作之一。一旦 root 口令泄露,整个系统将门户洞开,不再有任何安全性可言。因此好的系统管理员不仅使用难于记忆和猜破的 root 口令而且经常改变。但如果使用中一时忘记了 root 口令,或者因为系统故障导致 root 口令丢失,那该怎么办呢? ·重新安装全部系统:不但费时费力,而且系统中存储的大量宝贵数据将被破坏或丢失。 ·重新安装系统,在安装前先将系统中的数据备份:方法复杂,不仅重装系统费时,系统数据备份同样很麻烦。 ·如果系统中预留有其他超级用户,在root 口令忘记时固然不存在问题,但碰到因系统故障导致整个口令表丢失时仍然无计可施。 有没有什么更好的办法可以直接恢复root 口令呢?答案是肯定的。下面分别介绍SCO UNIX 和 SYSTEM V root 口令的恢复方法: SCO UNIX root 口令的恢复 SCO UNIX root 口令的恢复一般通过事先制作好的系统引导盘来完成。 1. 事先制作系统引导盘。 即在 UNIX 安装当初就做好一套应急盘,步骤如下: (1)# passwd root 将 root 口令清空。 # mkdev fd 系统提示: a) 48tpi, double sided, 9 sectors per track b) 96tpi, double sided, 15 sectors per track c) 135tpi, double sided, 9 sectors per track d) 135tpi, double sided, 18 sectors per track 其中 b) 为5英寸1.2MB软盘,d) 为3英寸1.44MB软盘。然后系统提示: a) Filesystem b) Bootable only (96ds15 and 135ds18 only) c) Root filesystem only (96ds15 and 135ds18 only) 先选 b)制作一启动盘,再选 c)制作一 Root filesystem盘,并将/etc/passwd, /etc/shadow 二文件拷入。方法如下: # mount /dev/fd0135ds18 /mnt # cp /etc/passwd /mnt/etc # cp /etc/shadow /mnt/etc (2)将 Bootable 盘插入 A 驱,开机启动,然后系统提示插入 Root filesystem 盘并回车。系统启动成功后进入 # 状态。此时应先清理硬盘文件系统,否则设置硬盘文件系统会失败。方法如下: # fsck /dev/hd0root 然后覆盖原口令表口令: # cp /etc/passwd /mnt/etc/passwd # cp /etc/shadow /mnt/etc/shadow # umount /dev/hd0root # shutdown -y -g0 -i0 (3)取出软盘,重启。此时 root 已无口令,可以进入系统。 由于原口令表已被覆盖,所以需重建其他用户。 2. 没有事先制作的系统引导盘。 这时可以在另一台 SCO UNIX 机器上制作一套应急盘(方法同上),然后拿到这台机器上使用。但需要注意的是,如果是 SCO 5.0 以前的版本,则两台 PC 的硬件不能相差太远。如果是 SCO 5.0 以后的版本,在制作应急盘时应选择制作通用的启动盘(General bootable disk),而不是本机启动盘(For this machine only)。 SYSTEM V root 口令的恢复 UNIX SYSTEM V 一般运行于较高档的工作站或服务器,而不能够运行于PC上,所以通常不支持软盘启动方式。这些高档工作站或服务器在遇到非法关机或突然掉电的情况下,很有可能口令表丢失或系统文件受损。在实践中为了恢复 root 口令或其它系统文件,常常采用挂接两块硬盘的办法。以下我们以 SUN 服务器为例来说明具体的操作思路,其他类型的服务器也可以参考借鉴。 1?苯?丢失口令的服务器硬盘摘下,以从盘方式挂接到另一台 UNIX 服务器上。 2.开机,系统检测第二块硬盘并作相应设置。虽然各种服务器检测新硬件的方式大不一样,但一般都会在内核(kernel)中生成相应的设备文件。对 SUN服务器来说,在 ok 状态下键入 boot -r 启动,系统会自动查找相应的新增硬件设备,并在/device 下生成相应的设备文件,例如第二块硬盘为: /dev/rdsk/c0t1d0s2。 3.正常进入系统后,清理第二块硬盘上的文件系统。即: # fsck -y /dev/rdsk/c0t1d0s2 4.挂接第二块硬盘的 0 号分区(因为该分区一般均为 root 区): # mount /dev/dsk/c0t1d0s0 /mnt 5.将此台服务器的口令表覆盖原服务器口令表: # cp /etc/passwd /mnt/etc/passwd # cp /etc/shadow /mnt/etc/shadow # umount /mnt 6.关机: # sync /dev/rdsk/c0t1d0s0 # sync /dev/rdsk/c0t1d0s0 # shutdown -y -g0 -i0 7.取下第二块硬盘,放回原服务器,启动。此时 root 口令已变成刚才那台服务器的root 口令,可以进入系统。同样,由于这台服务器的口令表已被覆盖,所以需调整其用户设置。 对 SYSTEM V 服务器 root 口令的恢复办法其实对运行SCO UNIX 的 PC 机也是同样适用的,只不过 mount 的设备名不一样而已,本文就不再细述了。 作者: liangniu007 来源: 本文出自:亿恩科技【www.enkj.com】 |
京公网安备41019702002023号