Linux系统有7个运行级别(runlevel),分别是运行级别0---6运行级别
(1)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动。其实就是关机。
(2)运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆.在忘记root密码时一般用这个运行级别,进去修改root密码。
(3)运行级别2:多用户状态(没有NFS),没有网络连接。
(4)运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式。 linux很常见的运行级别
(5)运行级别4:系统未使用,保留。
(6)运行级别5:X11控制台,登陆后进入图形GUI模式。就是图形模式。
(7)运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。
二、linux系统运行级别只能在一种runlevel下运行。如下所示:
[root@nginx ~]# cat /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault: 3这里默认为3,一般使用图形模式的话要修改为5.
单用户模式(英语:Single user mode),是在类似在Linux系统上工作时的一种拥有超级用户权限的模式。通常在开机选单给予1或S参数能进入这个模式。这个模式只在面对主机实体时才有机会透过开机选单进入,也因此确保超级权限授予的对象是能接触到主机的超级用户。此操作通常用于维护硬盘分区或更改超级用户密码等需在磁碟挂载前操作的维护。
1、进行单用户的方法
由于引导Linux系统的方式很多,常见的软盘引导,LILO引导,GRUB引导,我对这几种方式分别进行说明:
1.1软盘引导
在软盘启动之后出现“BOOT:”时,可以对启动的参数进行设置,在这里键入“Linux single"之后启动系统即可以进行单用户方式。
1.2LILO方式
在LILO方式启动时,出现LILO提示之后,应该快速的输入kernel/boot/vmlinuz-2.4.7-10 single roo=/dev/hda3,在这里我使用的REDHAT7.2,内核为2.4.7-10,在使用时一般文件名为vmlinuz,可以在系统正常时对这个内核文件进行复制,或建立联接。single 为单用方式。root=/dev/hda3为Linux系统根所在的分别,我的计算机装有98,如果只有Linux。可能是/dev/hda1,在第二个硬盘上时,就是/dev/hdb1。这里是Linux对分区进行标识方法。
1.3GRUB方式
这种方式进行引导就复杂一些,进入GRUB启动画面时按“C”进入GRUB命令行,有密码时按“P”之后输入密码之后再进行GRUB命令行。
在命令行中输入以下命令可以进行单用户,我仍以REDHAT7.2为例进行说明kernel /boot/vmlinuz-2.4.7-10 single root=/dev/hda3initrd/boot/initrd-2.4.7-10.img boot (hd0,2)第一二句是指明内核文件,单用户的关键字仍为single,系统的不同,可能文件名有所不同。boot (hd0,2)的含义为以
第一个硬盘的第3个分区进行引导。
2、防止进入单用户的方法
由于单用户对系统有完全的控制权限,如果操作不当或被他人进入,那么后果将不堪设想,如何防止入行单用户了,有以下几个注意的方面。
2.1对/etc/inittab文件进行保护,如果把id:3:initdefault中的3改为成1,就可以每次启动直接进入到单用户方式。对/etc/inittab文件,以root身份进入通过chown700 /etc/inittab把属性设为其它用户不能修改就行了。
2.2如果是使用的lilo方式进行引导,可能通过Linuxconf或直接修改lilo.conf把引导时等待输入时间设置为0或最短时行。这种情况下,如果进入单用户方式,可以用软盘进行引导。
2.3如果使用是GRUB方式进行引导,最简单的方法是使用GRUB密码,对启动选项进行保护。
2.4为了防止他人远程进行破坏,使系统重启,除了对ROOT的密码和/etc目录下的文件进行有效管理之外,还应当对CMOS进行密码设置,这样即使把系统改成单用户方式了,也无法直接的启动计算机进行操作。
一、忘记root密码修改root密码
centos7:
1.开机启动时出现下图界面时,按e键
2.按e键后出现下图界面时,找到utf-8这个位置
3.在后面输入: init=/bin/sh,并且把ro改为rw,按 ctrl x 执行
4.进入如下界面(单用户模式)时,输入:mount -o remount,rw /
5.进入如下界面时,输入passwd,设置密码
6.设置好密码后,进入如下界面,输入 touch /.autorelabel 更新系统信息
7.输入完毕后最后执行 exec /sbin/init 即可退出单用户模式
启动时遇到阻碍是按ctrl+c继续启动
Ubuntu
进入单用户模式:
1. 开机重启
2. 常按ESC,此时会进入BIOS选项,直接回车就行
3. 回车后按一下ESC即可进入Grub启动菜单,如果按多了进入Grub命令行,那么重新来一遍。
4. 选择Ubuntu 的高级选项
5. 选择 recovery mode那行按e进入编辑模式,多个recovery mode选第一个
6. 找到 linux /boot/vmlinuz-*那行,将它的ro recovery nomodestset 及之后的东西替换为rw single init=/bin/bash,然后按 ctrl+x或者F10 进入单用户模式,此时用户即为root用户。
修改里面的linux行
修改前:
修改后:
修改密码:
见到:root@(none):/# 马上输入”passwd“ 回车!
见到:Enter new UNIX password: 马上输入”123“ 回车!
见到:retype new UNIX password:马上输入”123“ 回车!
新密码变成”123“了。
输入”reboot“ 回车!不行就用Ctr+ Alt+ Del. 总之重启动就可以了!
银河麒麟:
1、开机启动,进入grub菜单 按'e'进入编辑模式
2、将ro修改为rw 然后在末尾加入 init=/bin/bash,然后ctrl+x进入shell模式
3.passwd 更改root密码,reboot -f重启。
二、跳过用户名密码登录
很简单,只需把/etc/passwd中的root:x:0:0:root:/root:/bin/bash,改为root::0:0:root:/root:/bin/bash,就可以了,就是去掉了里面的x,这样root用户就不用密码了。其他用户也一样。
忘记root密码,root免密码登录。登录普通用户,使用命令sudo passwd root 然后输入用户密码可以修改root密码。
思路:先跳过密码登录,验证可以免密码登陆;再修改root密码,免登陆后切换root用户,输入修改后的密码,切换root用户成功。
三、提示密码过于简单
更改/etc/pam.d/sysystem-auth文件的以下两行内容来归避以上的报错信息
#备份文件
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.`date +%Y%m%d.%H%M%S`
vim /etc/pam.d/system-auth
#注释掉以下行
#password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
#删除掉下行中的选项use_authok
password sufficient pam_unix.so sha512 shadow nullok try_first_pass #use_authtok