我向孩子们展示了一些有关 EC2 Ubuntu 实例上的目录权限的基本知识,然后做了这个
$ sudo chmod 700 /home
然后证明我无法再cd
进入我的主目录,因为权限被拒绝。
然后我无意中与 EC2 实例断开连接。现在我无法重新登录,因为 ubuntu 端的 sshd 无法访问我的/home/ubuntu/.ssh/authorized_keys
文件。我试过想办法,但没有什么办法。
我准备删除并重新创建整个实例,但如果可能的话,我更愿意挽救这个实例。有什么想法吗?!
答案1
按照蒂姆的建议:
我点击Launch Instance
创建一个新实例。我只需选择第一个 AMI 所列的内容(某个 Amazon 版本的 Linux),然后使用我手头已有的密钥对,按照默认设置创建它即可。
然后我点击Volumes
并从我的主机上分离了 EBS 卷。这大约花了 30 秒。然后我选择Attach Volume
并将其附加到新实例/dev/sdf
。然后我ssh
进入新实例。
在新实例中我输入
$ sudo mkdir /caribou
$ sudo mount /dev/sdf1 /caribou
$ cd /caribou
$ sudo chmod 755 home
这修复了/home
目录权限。
然后我回到 EC2 控制台,从 Amazon 实例中分离 EBS 卷,并将其重新附加到我原来的 Ubuntu 实例/dev/sda1
。然后我启动了旧实例并登录,一切都已修复。
花了 30 分钟(包括弄清楚以上所有内容的时间)。感谢 Tim。
答案2
我不确定 EC2 是否有这个选项(它应该有),但如果你还没有完全禁用 root 登录,那么通过 EC2 网站在你的实例上打开一个控制台会话,以 root 身份登录,恢复可读权限,你就应该没问题了。