1、前言
最近在和同事一起在linux CentOS系统下部署项目,由于同事不知道执行了什么不当操作,改变了系统的权限(权限可能是被修改,也可能是被删除了),改变的权限有可能是用户权限,也可能是其它权限(猜测肯能是gdm权限被改变导致的)。反正就是一进入到系统用户登录的界面,系统停留在登录界面,鼠标点击用户时,闪一下之后,就没有任何反应了,也不能移动了。键盘任何按键,按下后都没有任何反应。
2、解决思路
进入单用户模式(也称救援模式)下,首先查看 /var/empty/sshd目录的权限,在通过修改/etc/inittab文件中的默认运行级别,在赋予静态IP地址和网关等 重启该linux机器即可。
3、进入单用户模式
1.什么是单用户模式:
单用户模式(英语:Single user mode),是在类似在Linux系统上工作时的一种拥有超级用户权限的模式。 通常在开机选单给予1或S参数能进入这个模式。 这个模式只在面对主机实体时才有机会透过开机选单进入,也因此确保超级权限授予的对象是能接触到主机的超级用户。
单用户模式,主要是为了方便恢复不当操作。
2. 单用户模式下的网络:
单用户模式下,已经停止了任何网络服务和网络配置,不会有其他任何人(通过网络)干扰系统的运行状态。可使用ifconfig命令查看
3.进入单用户模式(CentOS):
01.在centos系统启动时,会出现以下界面,按键盘 e键:
02.如下界面按 e,进入编辑模式,视图如下:
03.按下键盘"E"键进入启动菜单单向界面,使移动光标至"kernel"配置项一行:
04.按e进入kernel编辑命令行,如下图,在光标空格然后输入single 或s 或1
输入完成后按回车键,保存返回上一级启动菜单,按b 启动系统:
05.按下键盘"B"键使用更改后的启动菜单项,启动单用户模式。
如果出现以下提示,则说明已经进入单用户模式了
[root@sunfeilinux /]#
4、具体解决流程
01.查看/var/empty/sshd的目录当前拥有的权限:
[root@sunfeilinux /]# cd /var/empty //首先cd进入到empty目录下
[root@sunfeilinux empty]# ls -l // 查看该目录下内容的权限 ,l -->小写的L
drwx--x--x. 2 root root 4096 10 15 2014 sshd
02.对empty目录内容进行权限修改
[root@sunfeilinux /]# chmod 755 /var/empty/sshd
drwxr--xr--x. 2 root root 4096 10 15 2014 sshd //很明显多了执行权限
03.修改/etc/inittab配置文件的默认值
[root@sunfeilinux /]# vim /etc/inittab
#将默认配置内容 id:5:initdefault 修改为 id:3:initdefault // id:5:initdefault -- 以可视化界面启动, id:3:initdefault -- 以命令行模式启动
04.重启该linux机器
[root@sunfeilinux /]# reboot
05.重启之后,查看ip地址
[root@sunfeilinux /]# ifconfig
06.向先关运维人员(或其他后端人员)询问原来的ip地址
例如我这台机器以前的ip是:172.16.66.207
07.进行网络配置
[root@sunfeilinux /]# cd /etc/sysconfig/network-scripts
[root@sunfeilinux network-scripts]# ll
[root@sunfeilinux /] # vim /etc/sysconfig/network-scripts/ifcfg-eth0 //如上图,发现没有ifcfg-eth0这个文件夹,可以通过vim来新建
DEVICE=eth0 //网卡设备名称
TYPE=Ethernet //网卡类型为以太网HWADDR=8C:DC:D4:43:CF:F8 //网卡MAC地址
ONBOOT=yes //启动时是否激活 yes | no
NM_CONTROLLED=yes
BOOTPROTO=static //协议类型 dhcp bootp none
IPADDR=172.16.66.207 //网络IP地址
NETMASK=255.255.255.0 //网络子网地址
GATEWAY=192.168.8.20 //网关地址
DNS1=202.102.224.68 //域名系统1
DNS2=114.114.114.114 //域名系统208.配置完成后保存文件,并重启网络服务,让配置生效
[root@sunfeilinux /] # service network restart
[root@sunfeilinux /] # ifconfig //在次查看ip地址,就可以查看到先关信息了
09.在同一局域网的另一台机器上ping一下刚才配置的172.16.66.207
进入dos命令窗口
C:\Users\86156> ping 172.16.66.207 //如果可以ping同,则可以尝试使用Xshell等远程工具连接一下,然后就可以进行具体linux相关操作了。
5、最终说明
目前这个解决方案,可以解决鼠标键盘因权限不能操作引起的问题,在不重新装系统的情况下,仅为应急方案,改为命令行模式下,就不能可视化桌面了。如果您有更好的解决方案,欢迎沟通学习。