Google cloud platform 恢复谷歌虚拟机文件权限

Google cloud platform 恢复谷歌虚拟机文件权限,google-cloud-platform,Google Cloud Platform,我不小心在我的GCP上运行了“sudo make chmod-R 777/”,现在我无法再访问SSH(无论是通过终端还是浏览器): 如何访问我的虚拟机并将其还原?正如@John Hanley所建议的那样,您必须(必须)创建一个新实例,以避免将来使用此已损坏的虚拟机出现严重问题 使用~/.ssh/id_rsa.pub解决权限问题,您可以按照文档或通过@John Hanley执行命令sudo chmod 644~/.ssh/id_rsa.pub或按照中的说明通过串行控制台连接到实例,然后运行sudo

我不小心在我的GCP上运行了“sudo make chmod-R 777/”,现在我无法再访问SSH(无论是通过终端还是浏览器):

如何访问我的虚拟机并将其还原?

正如@John Hanley所建议的那样,您必须(必须)创建一个新实例,以避免将来使用此已损坏的虚拟机出现严重问题

使用
~/.ssh/id_rsa.pub
解决权限问题
,您可以按照文档或通过@John Hanley执行命令
sudo chmod 644~/.ssh/id_rsa.pub
或按照中的说明通过串行控制台连接到实例,然后运行
sudo chmod 644~/.ssh/id_rsa.pub
正确的权限

请记住,恢复SSH访问不会解决与
sudo make chmod-R 777/
相关的VM的所有其他可能问题。因此,您可以跳过它并按照以下说明操作:

要将数据从损坏的虚拟机移动到新的虚拟机,您可以按照以下步骤操作:

  • 创建断开实例的启动盘快照

    $ gcloud compute disks snapshot BROKEN_INSTANCE_BOOT_DISK_NAME --snapshot-names=TEMPORARY_SNAPSHOT_NAME
    
  • 使用快照创建临时磁盘

    $ gcloud compute disks create TEMPORARY_DISK_NAME --source-snapshot=TEMPORARY_SNAPSHOT_NAME
    
  • 将临时磁盘附加到新实例

    $ gcloud compute instances attach-disk NEW_ISTANCE_NAME --disk=TEMPORARY_DISK_NAME
    
  • 装载临时磁盘

    $ sudo su -
    $ mkdir /mnt/TEMPORARY_DISK
    $ mount /dev/disk/by-id/scsi-0Google_PersistentDisk_TEMPORARY_DISK_NAME /mnt/TEMPORARY_DISK 
    
  • 将数据从临时磁盘复制到新实例

  • $ gcloud compute instances attach-disk NEW_ISTANCE_NAME --disk=TEMPORARY_DISK_NAME
    
  • 卸载临时磁盘:

    $ sudo umount /dev/disk/by-id/scsi-0Google_PersistentDisk_TEMPORARY_DISK_NAME 
    
  • 暂时分离圆盘

    $ gcloud compute instances detach-disk NEW_ISTANCE_NAME --disk=TEMPORARY_DISK_NAME
    
  • 1/2)您有一个更严重的问题,那就是您破坏了整个操作系统的许可证。有几种方法:1)将引导(根)磁盘连接到另一个实例,并更正文件权限。2) 使用启动脚本运行命令以修复权限。本文将展示如何运行启动命令:2/2)我建议创建一个新的VM实例并连接旧的启动磁盘。然后复制你需要的文件和数据。然后删除旧实例。