1 root用户密码忘记
root用户密码丢失的解决方式:
1.1 单用户模式
1、重启linux,可以通过执行命令 reboot、init 6或shutdown -r now来进行重启(关机可以使用init 0或poweroff),如果使用虚拟机,需要通过“电源”->“重新启动客户机”来实现。
2、在启动时会出现如下界面:
3、在该界面下按“e”键,进入GRUB界面(进入了启动程序):
4、按向下的方向键,找到linux16的一行,然后按向右的方向键找到“ro”,将只读修改为读写“rw”,并在后面增加init=/sysroot/bin/sh(系统所在目录),输入如下所示:
5、然后按“ctrl+x”,之后进入如下界面:
6、执行chroot /sysroot/切换至原来的系统环境下:
7、通过passwd root命令修改密码,如果在命令执行过程中出现乱码,可以使用LANG=en命令来解决:
8、执行完以上命令后,必须执行touch /.autorelabel才能重启登录操作系统:
以上命令无法通过远程管理的方式进行
在centos6及以前版本中有0-6共7个运行级别,分别表示
0:关机
1:单用户
2-4:多用户模式
5:图形操作界面
6:重启
centos 7中无运行级别的概念,可以通过ls -l /usr/lib/systemd/system/runlevel*target命令来查看运行级别与7中的对应:
1.2 救援模式
有些linux系统会设置GRUB密码,在无法进入GRUB模式的情况下,可以通过救援模式来修改密码,即使用光盘或优盘进入安装系统的界面来修改密码。
1、重新并加载光驱。在编辑虚拟机设置,选择启动时连接,并加载镜像文件:
2、然后选择“电源”->“启动时进入BIOS”:
3、进入如下界面,并将CD-ROM Drive调整至第一行,然后按F10保存并推出
4、虚拟机此时会进入安装界面:
5、选择第三项“troubleshooting”:
6、选择第二项“rescue a centos linux system”,然后敲击两次回车:
7、此处选择1“continue”,然后按回车得到chroot /mnt/sysimage:
8、执行chroot /mnt/sysimage,然后再执行命令“passwd root”修改密码,然后重启即可
9、在启动之前需要修改bios,因为使用的虚拟机,可以通过虚拟机设置,取消“启动时连接”的勾选来进行。
如果配置文件修改错误,导致系统无法正常运行,也可以通过单用户或救援模式解决
2 linux系统互联
2.1 虚拟机克隆
克隆之前需进行关闭系统
选择“虚拟机”->“管理”->“克隆”->“创建链接克隆”,如果选择创建完整克隆,则会将整个系统的所有文件克隆:
在完成克隆以后,登录系统之后需要修改IP地址,否则克隆主机与原系统IP地址会有冲突,也需要将UUID这一行删掉,否则两个一样的UUID会出现问题:
然后重启网络服务,并检测IP地址是否正确:
对克隆主机修改主机名,可以通过hostname查看(默认为localhost.localdomain),可以通过执行hostnamectl set-hostname aming-02将主机名修改为aming-02,退出再重新登录时,主机名生效:
2.2 linux主机互联
1、通过密码认证互联
可以在linux系统中通过执行ssh 192.168.133.132(IP地址根据实际情况来定)来连接远程主机,登录远程主机后,可以通过w命令来查看当前有哪些主机远程连接本台主机:
标准写法ssh username@ip,如果不写username,则默认使用当前登录用户(可以通过执行whoami查看当前登录用户):
在不指定端口的情况下,默认为22,如果目标主机端口发生变化,可以通过执行
ssh -p 端口号 username@ip来进行远程连接:
2、密钥认证互联
通过ssh-keygen生产密钥对,然后指定路径(默认为/root/.ssh/id_rsa),回车之后输入密钥密码,回车生产私钥和公钥:
其中公钥和私钥分别保存在/root/.ssh/id_rsa.pub和/root/.ssh/id_rsa:
可以将公钥内容复制到目标主机中,编辑vi /root/.ssh/authorized_key,粘贴公钥并保存退出:
然后通过执行getenforce查看selinux的状态,如果显示为enforcing,则表示selinux为开启状态,需要执行setenforce 0临时关闭selinux,此时selinux的状态变为permissive:
然后就可以通过密钥认证直接连接目标主机: