Dec 11, 2012 -
linux
2 Comments


Save CentOS permissions
$ chmod -R 777 /
如果你不小心输入了这条命令,并打了回车,那么请千万不要reboot你的机器。否则就认真照着下面一步一步做吧!
重启后,你会发现你的root账号不能登录了,ssh也连不上了,mysql自然也连不上了。一切工作都只能停下来了。还好,我们可以通过single模式进入root账号
1. 在系统启动时按e,选择要进入的内核
2. 选中Kernel一行,还是按e
3. 在rugh quiet一行后添加空格single,再回车。以表示进入single模式。
先来一次整体的权限修复,虽然不可能修复到误操作之前的状态,但大多数权限应该都是可以恢复的。
首先,找一台干净的CentOS,其实也就是我的虚拟机。输入:
$ getfacl -R / >systempermissions.bak
然后把这个文件放到被误操作的服务器上去(我是通过samba放上去的),然后执行:
$ setfacl --restore=systempermissions.bak
然后重启机器,到此为止,大多数文件的权限应该都恢复了。
———————————————
但可耻是ssh还是不能连。继续修复ssh
$ cd /etc/ssh/ $ ll
发现这里的权限还全是777,参照虚拟机改之
$ chmod 600 sshd_config ssh_host_dsa_key ssh_host_key ssh_host_rsa_key $ chmod 620 moduli $ chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub
接着,
$ cd /var/empty $ chmod 744 sshd
然后
$ service sshd start
ssh OK!!!
————————————
mysql的修复就简单多了
$ chomd 644 /etc/my.cnf
mysql ok!!!!
————————————
在这个时间点,reboot一下后,发现服务器本机root还是无法登录,但ssh root是可以登录的。
$ cd /etc/ $ chmod 600 securetty $ chmod 600 security/
root登录 OK!!!!
我昨天手贱用ftp把云服务器上的根目录改成了777
是不是可以让服务商那边按您这个教程改过来?
1. 根目录777和根目录下所有文件都777是两回事。
2. 服务商可能会有更高端的方法哦!