Ubuntu 无法在根目录中的chmod-R 777之后访问ec2

Ubuntu 无法在根目录中的chmod-R 777之后访问ec2,ubuntu,amazon-ec2,connection,root,chmod,Ubuntu,Amazon Ec2,Connection,Root,Chmod,我不小心在我的Ubuntu ec2 AWS实例上运行了“sudo chmod-R 777./”。在那之后,它把我踢了出去,我再也不能通过FTP或SSH连接到该实例。你有什么建议可以告诉我如何恢复我的实例吗 最好的 John运行chmod时所处的任何目录都具有递归更改以开头的所有文件和目录的权限 由于您运行此命令后整个系统停止工作,因此我假定您位于一个非平凡目录中,并设法更改了某些基本二进制文件的权限 因此,它们不再正常工作,导致系统无法使用。有三种方法可以从中恢复过来。你不会喜欢第一个的。考虑到

我不小心在我的Ubuntu ec2 AWS实例上运行了“sudo chmod-R 777./”。在那之后,它把我踢了出去,我再也不能通过FTP或SSH连接到该实例。你有什么建议可以告诉我如何恢复我的实例吗

最好的
John

运行
chmod
时所处的任何目录都具有递归更改以
开头的所有文件和目录的权限

由于您运行此命令后整个系统停止工作,因此我假定您位于一个非平凡目录中,并设法更改了某些基本二进制文件的权限

因此,它们不再正常工作,导致系统无法使用。有三种方法可以从中恢复过来。你不会喜欢第一个的。考虑到你的问题,第二个可能不是一个选项。第三个执行起来真的很烦人

首先,我建议您删除EC2实例并从头开始重新创建它。也许这次可以使用CaC工具重新创建手动更改,这样以后就不会那么痛苦了。:)

如果这对您不起作用,那么从备份或快照恢复文件系统。你有…对吗?啊,不用担心。我以前也去过那里。很抱歉

现在,让我们来谈谈恼人的选择。您可以通过停止EC2实例并移除EBS磁盘来进行恢复。然后在同一个系统中提供一个新的EC2实例,并在一个未使用的挂载点上提供给它。打开EC2实例的电源,通过SSH连接到它,并手动修复您使用
chmod
递归修改的权限。在此之后,您应该能够停止该实例,将磁盘添加回原始实例,重新接通电源,并恢复其状态

如果您修改了一个巨大的目录树,如
/etc/
,那么您可能处于非常粗糙的状态。对于Linux服务器,任何合理的工作量都可能无法恢复。然而,您可以探索的另一个潜在解决方案是使用

按照我上面的步骤,将旧文件系统装载到新的EC2实例上。然后将文件系统装载到新文件系统上的一个空间,并运行
chroot/mnt/old/disk/location
。如果您设法更改为自己的文件系统,那么您可以通过使用
apt-get
重新安装包来自动恢复<代码>apt get--重新安装。之后,只需退出
chroot
会话,将磁盘连接到旧的EC2实例上,然后看看这会给您带来什么


如果你需要更多的帮助,请告诉我。我以前没有特别需要从这种情况中恢复,但我以前使用过这个过程从EC2上Linux文件系统上被破坏的根分区中恢复

您是否尝试重新启动该实例?是的,不幸的是,它没有帮助sshd有可能因为一个不安全的世界可写文件而拒绝启动。你有可以恢复的备份吗?我想这就是原因。不幸的是,在运行代码之前我没有做备份。是否没有其他方法可以再次访问该实例?也许是通过root或者其他方式?除非ec2提供某种后门,否则我不这么认为。您可以尝试
nmap
ping它以确保一切都已关闭。尽管您可以将映像作为vm或光盘映像下载,然后手动加载并更改文件,然后将其加载回实例。