GCE 删除的用户文件夹在重启后重新出现

GCE 删除的用户文件夹在重启后重新出现

在新创建的 gce 实例上,我发现一个非常混乱的/home/文件夹,其中包含每个具有足够权限的 GCP 用户的一个主目录(到目前为止还不算太疯狂),但也包含任何曾经成功通过 gcloud ssh 登录到同一项目的任何 gce 的用户的主目录(即使该用户从未真正尝试过 ssh 到该 gce 实例)

gcloud compute ssh username@gce-instance --project project-name

最后一件事对我来说似乎令人费解,但无论如何,我决定在新创建的 Ubuntu 18.04 gce 上删除所有这些 Linux 用户,命令deluser --remove-all-files如下:

CURRENT_USER=username
for USER in `ls /home`
  do
    if [ $CURRENT_USER -neq $USER ]
      then 
        deluser --remove-all-files $USER
      fi
  done

除了当前用户之外的所有用户都被删除了,并且他们的主文件夹也不会出现ls /home/,但这只是暂时的,因为在下次重新启动 gce 后,所有用户都会重新出现。

我查看了journalctl,发现这是由于google-accounts守护进程在启动时创建了所有这些用户。我在中发现了执行此操作的代码/usr/lib/python3/dist-packages/google_compute_engine/accounts/accounts_daemon.py,我甚至尝试google_compute_engine.accounts.accounts_daemon.AccountsDaemon()从 python CLI 实例化并运行其HandleAccounts(res)方法,journalctl看起来非常有希望:

Feb 27 15:32:57 gce-name google-accounts[1922]: WARNING Exception locking /var/lock/google_accounts.lock. File already locked.
Feb 27 15:33:18 gce-name google-accounts[1935]: WARNING Exception locking /var/lock/google_accounts.lock. File already locked.
Feb 27 15:33:35 gce-name google-accounts[1935]: WARNING Instance attributes were not found.
Feb 27 15:33:35 gce-name google-accounts[1935]: WARNING Project attributes were not found.
Feb 27 15:33:35 gce-name google-accounts[1935]: WARNING Instance attributes were not found.
Feb 27 15:33:35 gce-name google-accounts[1935]: WARNING Project attributes were not found.
Feb 27 15:33:36 gce-name google-accounts[1935]: INFO Removing user username_1.
Feb 27 15:33:36 gce-name google-accounts[1935]: INFO Removing user username_2.
### etc ###
Feb 27 15:33:36 gce-name google-accounts[1935]: INFO Removing user username_last.

不幸的是,经过最后一次非常自信的检查后sudo reboot now,我惊恐地发现每个文件夹都又回到了里面/home/

我没有主意了,有人能帮助我吗?

答案1

转到 GCP 控制台,在 Compute Engine 中,转到元数据。您将找到已添加为项目级别的所有 SSH-KEY。每次创建新虚拟机时,所有具有项目级别 SSH 密钥的用户都将有权访问该虚拟机。

更多信息请参考此链接: https://cloud.google.com/compute/docs/storing-retrieving-metadata

相关内容