在GCP启动脚本中查找用户名

我正在使用其python API启动GCP实例,在该实例中,我将通过启动脚本安装docker和其他软件包。问题是启动脚本以root身份运行,随后我只能以root身份运行docker。理想情况下,我想将用户添加到docker组中,以便它可以在不调用sudo的情况下运行docker。

问题是我不记得在创建实例时指定任何用户名,并且取决于我如何ssh进入实例(无论是让GCP管理ssh密钥还是使用我的上载密钥),我得到了另一个用户名称。

所以,我想知道是否有一种方法可以找出哪些用户可以连接到该实例,并将其添加到启动脚本中的docker用户组中?

qzheng123 回答:在GCP启动脚本中查找用户名

取决于您如何通过SSH进入Compute Engine,将为您创建SSH密钥。这也创建了一个Linux帐户。在名为/etc/default/instance_configs.cfg的文件中定义了此帐户的配置(例如,新帐户应属于哪个组)。如果您编辑该文件,则将看到以下条目:

[Accounts]
...
groups = adm,dip,docker,lxd,plugdev,video
...

这是创建帐户时添加用户的组的列表。您是专门询问要将用户添加到docker组中的,您可能会惊讶地发现docker已作为默认列表出现在列表中。然后,您可能想知道“为什么我的用户不属于Docker组的成员?”。

我猜您已经创建了一个Compute Engine,然后登录并安装了docker软件包。在这里暂停。第一次登录时,即创建帐户的时间,即首次将用户添加到组中的时间。但是,在该初始登录时,尚未安装docker,因此尚未创建docker组,因此无法将用户添加到不存在的组中。

作为测试,请尝试以下操作。

在Cloud Shell中运行:

gcloud compute ssh bob@[YOUR_INSTANCE] --zone=[ZONE]

这将创建一个新的身份(bob),并以bob的身份登录。运行id命令,现在让我们看看您所属的组。

本文链接:https://www.f2er.com/3128760.html

大家都在问