- 浏览: 314863 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
every:
真JB坑爹,标题redhat6 结果用的时5.3 ,尼玛标 ...
RedHat Linux 6企业版开启VNC Server远程桌面 -
okooo00:
五年光景蹉跎,最终还是烂尾了,从此人生又少了一样追求
《凡人修仙传》点评 -
mikey_5:
原来是这样子判断数据格式的,Thanks
POI读取Excel浅谈 -
jveqi:
tracy_meimei 写道楼主,我试过N多次了,在我的my ...
MyEclipse6.5 下Axis2插件的下载和安装 -
jsx112:
...
MySQL select into和SQL select into
有许多原因可能导致用户口令的遗失,这对系统管理员而言,可能不是一个问题,只要以Root账号登录,再用Passwd命令更改用户口令就可以了。可是,如果丢失的是Root口令,这又怎么办?难道就束手无策、重装系统?这样不仅费时费力,而且还可能造成重要数据的丢失和应用程序的破坏。显然这种做法并不可取。
其实,恢复Linux口令并不是一件很难的事情。Linux口令的恢复有2个方面: 一是给用户产生一个新的口令,使用户能够重新登录系统; 二是找出用户原来的口令,而不是以新口令代替旧口令。一般情况下,用户只希望能够再次登录进入系统即可,而不是获得原口令,也就是这里所说的第一个方面,相对而言,这方面要容易实现得多。
Linux口令的恢复是系统维护的一种典型情况,本文中提到的一些方法从系统维护的角度出发,不仅适用于Linux口令的恢复,也适用于因为某些原因不能正常登录进系统时的维护工作,对Linux系统的管理维护有参考作用。
本文中所有提到的恢复Linux口令的方法均在实践中测试通过,所用的Linux系统主要是RedHat Linux For x86,在实际口令恢复中,可能因Linux发行商、发行版本、处理器和硬盘等的不同而略有不同,但相差不会很大。其中一些方法也适用于其他Unix系统口令的恢复,甚至Windows等操作系统口令的恢复。
一、口令恢复途径
下面恢复Linux口令的途径适用于不同的情况,难易度各有不同。
1. 紧急修复模式
在无法启动Linux时,常常需要通过磁盘、光盘或其他方法启动Linux基本环境,进入Linux紧急修复模式。在紧急修复模式下,能够访问硬盘上的Linux系统文件,恢复系统正常,包括恢复口令等。
2. 单用户模式
Linux有多个运行级别,如单用户模式、无网络服务多用户模式、完全多用户模式和X11图形多用户模式等运行级别。单用户模式是指系统运行在惟一用户——Root用户模式下,进入此模式时,系统只是加载了可运行的最低软硬件配置,以Root直接进入,没有口令验证。
在单用户模式下,可以用passwd命令来更改用户口令,也可以直接对/etc/passwd等账户口令文件进行读写,达到口令恢复的目的。
3. 修改口令文件
Linux口令文件有2种保存形式: 一种是把账户信息和经加密后的口令密文都保存在/etc/passwd文件中,此形式不够安全,在早期Unix中采用;另一种是把账户信息和口令密文分开存放,/etc/passwd文件用于保存账户信息,/etc/shadow文件用于保存口令密文。至于采用何种保存形式和加密算法,可以用/usr/sbin/authconfig程序来设置。
对于没有shadow的passwd文件,只要把相应账户的口令字段删除,即可不经口令验证直接登录系统,例如某passwd文件的root账户如下:
root:$1$dPTzzYkE$Zd3Vs6yCu
VH8RC1gwKXX01:0:0:root:/root:/bin/bash
将其修改为:
root::0:0:root:/root:/bin/bash
如果是有shadow的passwd文件,其口令字段以“x”字母代替,口令密文保存在Shadow文件中。可以删除passwd文件中的“x”字母,或者删除shadow文件中的口令密文,都可以使相应用户不经口令验证直接登录系统,达到口令恢复的目的。
4. 口令还原
有些情况下,想找出被丢失的原始口令,而不是登录系统去产生一个新的口令。但是,Linux使用的是DES(加密函数式是Crypt)或MD5(函数式是Md)加密算法,由于计算量之大,它们几乎都没有可能被逆向破解。DES口令密文是有13个ASCII字符的字符串,而MD5口令密文的启始字符总是“$1$”。
虽然很难逆向破解,但要通过口令密文找出原始口令也不是不可能的,从一个字典或一些字符的排列组合中提取字符串,提取出来的字符串用同样的加密算法加密,将产生的密文与口令密文比较,如果一致则表明该字符串即为原始口令,从而达到口令还原的目的。如果口令很复杂,使用此种方法也是很难找出原始口令的,但用户对自己口令的长度、采用的字符等会有大致的印象,这使得成功的可能性会更大。
破解Linux口令的工具有很多,如John the Ripper、Crack by Alex Muffett和Cracker Jack等等,其中John the Ripper的功能最为强大,速度也最快。
5. 系统攻击破解
如果能够关闭电源重新启动系统,那么很容易恢复口令,但有时Linux系统上运行着非常重要的服务,不能直接关闭电源,否则会对系统和数据产生破坏。
像这种在系统运行的情况下获得系统口令,往往是比较困难的,但由于系统管理员对操作系统和应用程序的版本、配置等情况有着全面的了解,加上没有防火墙和入侵检测系统等的防护,那么发现和利用系统漏洞的机会还是不少的,口令恢复的成功机会还是有的。
这方面涉及的内容太复杂,在此就不多做介绍了。如果确有这方面的需求,最好由专业人士来帮忙,以免破坏系统和数据。
二、如何进入紧急修复模式
由于软硬件故障、错误配置等多种原因无法启动Linux时,需要进入紧急修复模式,有可能解决问题,至少也能拷出重要文件。
进入紧急修复模式的方法并不复杂,在boot提示符下输入如下参数:
boot: linux rescue
通过如下方法可以得到Boot提示符。
用Linux随盘发行的或由boot.img文件写成的安装引导软盘引导系统,通常这需要紧急修复盘或安装光盘或者硬盘上的ISO文件配合使用才能引导进入紧急修复模式。紧急修复盘可由rescue.img文件写成或随盘发行。在RedHat Linux 6.1以后,RedHat不再提供紧急修复盘(安装光盘image目录下也没有rescue.img文件用来写),而是把它直接做在安装光盘上。
用安装光盘引导系统。
用bootnet.img文件写成的网络引导盘或pcmcia.img文件写成的PCMCIA引导盘引导系统,此方法先要确保网络连接正常,并且需要确定网络主机和传输类型。
RedHat Linux 7.2及其以后的版本,可以选择是否要把安装在硬盘上的Linux自动尝试加载到目录/mnt/sysimage下,否则,要用mount命令手工加载。
简单几步,就进入了紧急修复模式。提示符呈现在虚拟控制台VC 1和VC 2上,以便运行命令维护系统。用Ctrl+Alt+F1键切换到VC1,用Ctrl+Alt+F2键切换到VC 2。
如果选择了自动加载,用chroot命令,使当前操作环境变为欲修复的Linux,之后可用passwd命令直接更改用户口令:
bash#chroot /mnt/sysimage
如果没有自动加载,就需运行mount命令加载Linux分区,并输入如下命令:
bash#mount -t ext3 /dev/hda5 /foo
目录/foo是由用户自己创建的,/dev/hda5是我们欲加载的Linux分区,如果分区类型是ext2,那上面命令行中就以ext2代替ext3。
至此,就可以用chmod、vi、fsck等命令读写文件、维护系统,包括修复口令。
三、如何进入单用户模式
与紧急修复模式只能加载本机Linux上的文件系统不同,单用户模式是在本机Linux内核引导启动后进入的一个运行级别(运行级别是1),可以做内核升级、设备安装等维护工作。在系统维护时,系统管理员往往要进入单用户模式来维护系统,进入紧急修复模式是在Linux不能启动时不得已而采用的系统维护方法。
Linux内核自行启动之后,通过启动程序init来完成自己的引导过程,所以,init进程始终是第一个进程,进程编号始终为1。Init程序有着许多重要的职责,如启动Getty、实施运行级别和调用子进程等,是Linux系统中必不可少的程序之一。
下面提到的进入单用户模式的方法,实质都是向init程序请求运行级别1,达到进入单用户模式的目的。
1.Init程序
系统正在运行时,在命令行上用程序Init可以更改运行级别(/sbin/telinit只是程序Init的符号链接,同样可以使用),进入单用户模式用如下命令:
#init 1
因为是在一个正在运行的系统上,且只有Root用户才有权限执行Init命令,所以此种方式虽然在系统维护时经常用到,但对口令恢复的意义不大。
操作方法:在进入grub引导界面时,请输入e,再选中第2行输入e,在最后输入1
使用单用户级别。回车 按b,进入单用户模式,然后再改配置文件
2. 修改默认运行级别
/etc/inittab文件是系统运行级别的配置文件,每当启动init进程时,init程序都会读取/etc/inittab文件中的相应配置并运行。
在Linux系统启动时,/etc/inittab文件中有如下一行指定了默认的运行级别,通常的运行级别是3或5。
id:3:initdefault:
要使系统启动后进入单用户模式,只要把上面一行中的3改为1就可以了。
id:1:initdefault:
3. 启动盘引导
在Linux系统启动时,Init读取/etc/inittab配置进入默认运行级别,但也可以为内核指定一个启动参数,内核将依此参数设定特定设备和环境变量等,对于不能接受解释的参数将传递给内核启动后的第一个程序,即Init程序,Init程序据此参数启动进入非默认运行级别,如指定参数为1或single进入运行级别1,即单用户模式。内核启动参数的指定可通过在系统启动软盘、多重启动管理器或程序Loadlin等的执行过程中指定。
在系统维护或内核更新时,常用到当前Linux系统的启动盘,在系统安装时会提示用户制作一张启动盘,在系统安装完成后也可以制作,下面是一个简单示例。
在软驱中放入软盘,用uname命令查看系统内核版本号,然后用Mkbootdisk命令创建引导盘,输入的命令如下:
#uname –r
2.4.7-10
#mkbootdisk –device /dev/fd0 2.4.7-10
以启动盘引导,在boot提示符下以“linux ”的语法形式输入如下参数之一,即可引导进入单用户模式如下:
boot: linux 1
boot: linux single
4. 多重启动管理器
多重启动管理器是一个能在系统启动时用来选择加载某个操作系统的引导程序,它可以载入操作系统的内核和初始化操作系统(如Linux或FreeBSD),或者把引导权交给操作系统(如DOS或Windows)来完成引导。Intel兼容PC机上的多重启动管理器有LILO和GRUB等,Alpha PC机上使用MILO,Sparc兼容的工作站是用SILO。
在多重启动管理器中为Linux内核指定启动参数引导进入单用户模式。以Intel兼容PC机上的Linux为例,如果安装的是LILO,在LILO引导画面,按Ctrl+X键切换入命令行,在LILO提示符下输入与启动盘引导Boot提示符下相同的参数之一,即可引导进入单用户模式:
在RedHat Linux 7.2以后,多重启动管理器开始用GRUB代替LILO,它比LILO具有更多的优势,是LILO的替代品。下面是GRUB引导进入单用户模式的过程。
在出现GRUB引导画面时,按字母e键,进入GRUB编辑状态。
按↑键或↓键选择相应的引导项,并再接字母e键进入命令行编辑。
在出现的命令行上添加“1”或single,并按键,返回GRUB编辑状态。
按字母b键,引导进入单用户模式。
从上可以看出多重启动管理器对Linux系统启动和维护的重要性,所以建议在安装Linux时也安装好多重启动管理器,便于将来系统的维护,哪怕是主机上只安装了Linux一个操作系统。
5. loadlin引导
loadlin是一个能在DOS下启动Linux核心的装载程序,可从DOS引导进入Linux或安装Linux系统等。如果没有安装多重启动管理器或者配置有误不能进入Linux的话,常常会用到这个程序。
在loadlin的启动命令中添加single参数就可以进入单用户模式。如果主机上安装有Windows 9x系统,在系统启动时按F8进入MS-DOS,运行loadlin程序引导进入单用户模式。下面是一次启动实例,该主机上没有安装Windows 9x,也没有安装DOS。
以Windows 98安装光盘引导启动,在“Microsoft Windows 98 Startup Menu”上选择第2项:“start computer with CD-ROM support.”。
进入MS-DOS后,在光驱中换入RedHat Linux安装光盘。
在命令行上分别输入如下命令引导Linux单用户模式,假设Linux根文件系统在分区/dev/hda5上:
A:>d:
D:>cd dosutils
D:DOSUTILS>loadlin autobootvmlinuz root=/dev/hda5 ro single
在启动盘引导的boot提示符下,在LILO和GRUB等启动管理器的命令行下,以及在Loadlin程序上都可以配置很多参数引导进入系统,对系统维护很重要,可以参考BootPrompt-HowTo。
上面提到的方法,都需要对/etc/passwd、/etc/inittab等Linux文件进行读写,但在正常情况,只有root用户登录进去才可以读写。那么在不能正常登录进系统时,又如何能对这些文件进行读写呢?
除了可以在紧急修复模式、单用户模式下读写Linux文件外,采用下面的方法也不失为良策:
通过Linux系统软盘引导启动,就能进入Linux系统;
通过Linux系统光盘进入,如DemoLinux;
在DOS/Windows下读写Linux文件,几乎所有版本的DOS/Windows都不提供对Linux文件系统的支持,但借助不少软件可以实现,如FSDext2、Ext2fsnt、Ext2ifs、Ext2 tools、Ltools和Explore2fs等,还有Microsoft IFS Kit; 通过第二硬盘。
上面提到的种种Linux口令恢复方法,读者可以结合自己的实际情况,选择一种最简单易行的方法来恢复自己的Linux口令。从中可以看出,他人通过在本地重启系统很容易获取Linux口令,所以为了加强系统安全,有必要在启动管理器(如LILO和GRUB)及BIOS中设置口令,使他人不能轻易得逞,更重要的是加强安全管理工作。
发表评论
-
redhat enterprise linux中vsftp开机自启动
2011-05-23 14:57 2327有三种方法可以实现redhat中vsftpd服务开机自启 ... -
Windows客户端的JProfiler远程监控Linux上的Tomcat服务器
2011-05-11 17:15 21331.测试环境 服务器:Redhat Enterprise Li ... -
RedHat Linux 6企业版开启VNC Server远程桌面
2011-05-06 11:06 18857环境:RedHat Linux 6企业版。 Xwindows: ... -
oracle 10g在linux下的安装及简单命令
2011-05-04 18:01 14751、配置数据库 dbca2、配置监听程序和service ne ... -
emctl start dbconsole遇到错误:OC4J Configuration issue
2011-04-26 18:11 2912今天在测试服务器上,启动emctl start dbconso ... -
在Linux下查看和修改环境变量
2011-04-26 15:46 1361系统的环境变量在配置web server以及编写程序都常常被用 ... -
Oracle 10g 下载地址
2011-04-26 15:41 1235Oracle Database 10g Release ... -
PL/SQL Developer连接远程Oracle数据库
2011-04-22 10:27 2149新的项目开始了,要用PL/SQL连接Oracle上新的数据了, ... -
解决Oracle XDB与Tomcat等的8080端口的冲突
2011-04-22 10:19 987从9i开始,oracle的安装缺省包含了XDB。在数据库后,O ... -
Linux独享主机绑定IP和MAC地址,防止ARP欺骗
2011-04-18 17:54 1303一、ARP欺骗病毒,主要表现为:中病毒的机器不仅影响 ... -
DNS中MX记录的理解
2011-04-18 10:55 3563先了解以下几个知识点: A记录:A (Address) 记录 ... -
选择代替Sendmail的邮件服务器软件
2011-04-15 11:05 1064电子邮件是人们在网上最常使用的通信工具之一,它已经成为我们网络 ... -
linux下mail的简单用法
2011-04-15 10:42 1144系统收到邮件都会保存在“/var/spool/mail/[li ... -
Linux上部署J2EE项目的过程及安全
2011-04-02 16:41 1890(一) 部署J2EE到linux上 1、 下载SSH S ... -
linux下使用tomcat查看控制台信息
2011-03-30 17:08 3334可以这样启动 /usr/local/tomcat/bin ... -
linux的date命令设置
2011-03-15 17:21 1244#date //显示当前日期 #date -s //设置 ... -
Linux下一些操作的简单整理
2011-03-08 13:10 15031.tomcat启动与关闭 cd tomcat目录 ./st ... -
linux下Apache+PHP+MySQL安装配置攻略
2011-03-07 17:29 16121.下载apache,我这里下载的是httpd-2.0.64. ... -
Linux设置系统时间
2011-03-06 18:55 1331两步(1)date 042612492005(2)hwcloc ... -
Linux下安装JDK及环境设置
2011-03-06 17:06 2361一、先从网上下载 jdk(jdk-6u24-linux-i58 ...
相关推荐
redhat linux安装使用指南 redhat linux安装使用指南
RedHat Linux安装图解RedHat Linux安装图解RedHat Linux安装图解RedHat Linux安装图解
### RedHat Linux基础知识点解析 #### 一、RedHat Linux概述 - **多用户系统**:RedHat Linux支持多用户同时登录系统,并且每个用户都有自己的工作环境。 - **广泛的硬件支持**:RedHat Linux能够运行在多种硬件...
RedHat Linux 9.0 安装和配置步骤 RedHat Linux 9.0 安装和配置步骤主要包括安装前的准备、确认安装方式、安装 RedHat Linux 9.0 等几个方面。 一、安装前的准备 在安装 RedHat Linux 9.0 之前,需要检查硬件支持...
### RedHat Linux RHEL6配置本地YUM源详解 #### YUM简介 YUM(Yellowdog Updater Modified)是一款在Linux环境下使用的包管理工具。它最初由Yellow Dog Linux的开发者们设计并实现,名为yup(Yellowdog Updater)。...
redhat linux 培训 redhat linux 培训 redhat linux 培训 redhat linux 培训 redhat linux 培训 redhat linux 培训 ppt ppt ppt
在Redhat LINUX5.0操作系统上安装Oracle 10g、Tomcat5和JDK是一项技术性较强的任务,涉及到多个层面的知识点。首先,我们来详细解析这些关键组件的安装和配置过程。 1. **Oracle 10g安装**: Oracle 10g是一款关系...
Redhat Linux 9.0 在 VMware 下桥接不能上网的解决方法 本文档将详细介绍如何解决 Redhat Linux 9.0 在 VMware 下桥接模式下无法上网的问题。通过本解决方法,您将能够成功地解决这个问题,并且掌握一些基本的 ...
redhat linux 9 三光盘合一的 ISO 文件
redhat Linux 6.8 64位操作系统 测试有用 redhat Linux 6.8 64位操作系统 测试有用
RedHat Linux操作系统作为企业级的Linux发行版,在安装过程中有着严格的规范要求,以确保系统的稳定性和安全性。本文将详细阐述RedHat Linux操作系统的安装规范。 首先,进行安装之前,系统管理员需要对当前的硬件...
RedHat linux 9.0.torrent Red Hat是全球最大的开源技术厂家,其产品Red Hat Linux也是全世界应用最广泛的Linux。
RedHat linux as 3 集群管理指南,中文版
### 傻瓜式安装RedHat Linux 7.4:详细步骤与知识点解析 #### 一、RedHat Linux 7.4简介 Red Hat Enterprise Linux (RHEL) 是一款广泛应用于企业级服务器的操作系统,其稳定性、安全性以及广泛的社区支持使其成为...
vmware下redhat linux9 的详细安装步骤
RedHat Linux也被大家叫成红帽子linux,可以说是目前世界上使用最多的Linux操作系统,它具备最好的图形界面,无论是安装、配置还是使用都十分方便,而且运行稳定。RedHat Linux 9.0是RedHat公司推出的经典版本,虽然...
redhat linux 服务器管理与应用
Redhat Linux Enterprise镜像从5.1到7.5的32位和64位操作系统的下载集合,文本是百度网盘共享出来的下载链接
RedHat Linux环境下防火墙配置初级入门