根目录bin文件移动后恢复

根目录bin文件移动后恢复

问题

cp、mv、ls、vi和cat均无法使用,而且无法远程登陆,ssh协议不生效,只有cd命令可以操作。一开始还以为不成器的阿里云服务器会被黑客攻击了,查看脚本执行时的目录后,不得不承认脚本出错导致,简单而言就是脚本命令变量为空导致移动目录错误。如图一堆报错,心有点凉。

-bash: /bin/ls: No such file or directory
-bash: /bin/mv: No such file or directory
-bash: /bin/cp: No such file or directory
-bash: /bin/vi: No such file or directory
-bash: /bin/cat: No such file or directory

处理

命令都不能正常使用后,很可能/bin、/sbin、/usr/bin和/usr/sbin导致,查看后确认四个文件均丢失(cd 加tab键能查看服务器目录和文件),导致linux服务器上所有命令无法使用。
再cd+tab键/tmp/vsftpd时,发现问题所在了,就是脚本执行出错移动了/usr目录全部文件到/tmp/vsftpd目录下。

在这里插入图片描述
知道服务还有/bin和/sbin文件就好办了,先临时加载到环境变量。

export PATH=$PATH:/tmp/vsftpd/bin:/tmp/vsftp/sbin
此时发现已经tab键列出命令,但执行报错
-bash: /tmp/vsftpd/bin/su: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
因为动态库/lib和/lib64同样移动到了当前目录,如图su -执行报错

在这里插入图片描述

此时使用以下便可执行操作。需要注意/tmp/vsftp是移动后的目录。公式可以理解为
移动后的目录/lib64/ld-linux-x86-64.so.2 --library-path 移动后的目录/lib64/ 移动后的目录/bin/cp -r /lib64 /

/tmp/vsftpd/lib64/ld-linux-x86-64.so.2 --library-path /tmp/vsftpd/lib64 /tmp/vsftpd/bin/cp  -rfp lib64/* /

如图,因为根目录下有同名的/bin和/sbin文件(不是目录),便先执行删除后再执行移动,移动后命令已正常操作,便恢复/usr目录的所有文件。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值