centos 系统 etc 目录 chmod 误操作后无法进入 ssh 的挽救措施
发布于 作者:苏南大叔 来源:程序如此灵动~苏南大叔为某个目录用shell
脚本更改755权限的时候,误操作,少打了一个点。本来是对当前目录的操作,变成了对根目录的操作。这操作的范围其实扩大到了整个系统文件!好吧,这样的弱智错误,相信很多人都干过。我也只是其中一员。用ctrl+c
也无法停止,就眼看着屏幕上一堆log日志输出了。想着,也许不会有太大危害,然后就悲剧了。ssh
无法进入了,如下图所示。
解决方案
首先,你需要还有一个能进入服务器的办法,苏南大叔的宝塔面板这次起到了这个桥梁作用。利用的是宝塔面板里面的计划任务来执行的修复脚本。当然,也可以使用宝塔里面的文件管理功能。如果你没有办法再进入服务器了,那么只能暂时建议你重做系统了。
究其原因,就是文件系统的权限错乱了。所以如果你有权限信息的备份文件就好了。但是....俺没有。从别人系统里面拿到的acl.bak
文件其实也不适合自己的。修复完成后,利用adduser
新增的用户的权限,也似乎是具有错误的属性的。看来,如果事先有当前用户的acl
备份,就再好不过的方案了。所以,有必要再增加个计划任务,备份系统权限信息。anyway,这里先向大家演示备份和恢复的脚本。如果您的centos
还没有备份这个文件,那么请备份,以备急需。
备份脚本:
getfacl -R ./ > ~\acl.bak
恢复脚本:
setfacl --restore ~\acl.bak
治标方案
单单就本次事件而言,既然无法治本(没有acl
备份),那就先治标吧(进入ssh
)。目标文件(夹),/etc/ssh/
,目标权限400
。所以,脚本为:
chmod -R 400 /etc/ssh/
或者利用宝塔的文件管理功能修改权限也可以,如下图所示。
修改完毕,顺利进入ssh
... 暂时解决问题... 大家敲命令的时候,千万要小心啊,不要再犯这样的弱智错误。如果这次不能通过宝塔面板对系统进行管理的话,估计就只能重做系统了。虽然各种备份都有,还是要费很大力气,才能再次搭建起来整个环境。是非常痛苦的说。
结论
good good study,day day up。面对问题,就要解决问题。加油! 更多苏南大叔带来的宝塔面板经验,请点击这里查看:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。