如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

苏南大叔为某个目录用shell脚本更改755权限的时候,误操作,少打了一个点。本来是对当前目录的操作,变成了对根目录的操作。这操作的范围其实扩大到了整个系统文件!好吧,这样的弱智错误,相信很多人都干过。我也只是其中一员。用ctrl+c也无法停止,就眼看着屏幕上一堆log日志输出了。想着,也许不会有太大危害,然后就悲剧了。ssh无法进入了,如下图所示。

centos系统etc目录chmod误操作后无法进入ssh的挽救措施 - ssh_error

解决方案

首先,你需要还有一个能进入服务器的办法,苏南大叔的宝塔面板这次起到了这个桥梁作用。利用的是宝塔面板里面的计划任务来执行的修复脚本。当然,也可以使用宝塔里面的文件管理功能。如果你没有办法再进入服务器了,那么只能暂时建议你重做系统了。

究其原因,就是文件系统的权限错乱了。所以如果你有权限信息的备份文件就好了。但是....俺没有。从别人系统里面拿到的acl.bak文件其实也不适合自己的。修复完成后,利用adduser新增的用户的权限,也似乎是具有错误的属性的。看来,如果事先有当前用户的acl备份,就再好不过的方案了。所以,有必要再增加个计划任务,备份系统权限信息。anyway,这里先向大家演示备份和恢复的脚本。如果您的centos还没有备份这个文件,那么请备份,以备急需。
备份脚本:

getfacl -R ./ > ~\acl.bak

恢复脚本:

setfacl --restore ~\acl.bak 

治标方案

单单就本次事件而言,既然无法治本(没有acl备份),那就先治标吧(进入ssh)。目标文件(夹),/etc/ssh/,目标权限400。所以,脚本为:

chmod -R 400 /etc/ssh/

或者利用宝塔的文件管理功能修改权限也可以,如下图所示。
centos系统etc目录chmod误操作后无法进入ssh的挽救措施 - ssh_error_5

修改完毕,顺利进入ssh... 暂时解决问题... 大家敲命令的时候,千万要小心啊,不要再犯这样的弱智错误。如果这次不能通过宝塔面板对系统进行管理的话,估计就只能重做系统了。虽然各种备份都有,还是要费很大力气,才能再次搭建起来整个环境。是非常痛苦的说。

结论

good good study,day day up。面对问题,就要解决问题。加油! 更多苏南大叔带来的宝塔面板经验,请点击这里查看:

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。