【问题标题】:How to add a GCE user to a group that persists membership?如何将 GCE 用户添加到保持成员资格的组?
【发布时间】:2016-09-07 15:22:35
【问题描述】:

在 GCE 上的 RHEL7 实例中,我使用了一个软件包,该软件包是从命令行使用其 bash 脚本安装程序安装的。安装程序创建一个运行软件的用户 xyz 和一个组 xyzgroup,并将用户 xyz 和运行安装程序的用户(例如 gce_user)添加到 xyzgroup 组。但是 GCE google-accounts-daemon.service (GAD) 会定期从组 xyzgroup 中删除用户 gce_user :

sudo systemctl -l status google-accounts-daemon.service
[...]
Aug 03 23:36:18 rhel7-n4 usermod[7702]: delete 'gce_user' from group 'xyzgroup'
Aug 03 23:36:18 rhel7-n4 usermod[7702]: delete 'gce_user' from shadow group 'xyzgroup'
Aug 23 05:12:36 rhel7-n4 usermod[26008]: delete 'gce_user' from group 'xyzgroup'
Aug 23 05:12:36 rhel7-n4 usermod[26008]: delete 'gce_user' from shadow group 'xyzgroup'
Sep 05 20:59:26 rhel7-n4 usermod[21884]: delete 'gce_user' from group 'xyzgroup'
Sep 05 20:59:26 rhel7-n4 usermod[21884]: delete 'gce_user' from shadow group 'xyzgroup'

但是,GAD 不会从组 xyzgroup 中删除用户 xyz。我在创建实例时使用 GCE 云控制台创建了用户 gce_user 并将 ssh 密钥添加到该用户;安装程序将用户 gce_user 添加到组 xyzgroup 但它没有持续存在。我使用sudo gpasswd -a gce_user xyzgroup 将用户恢复到组,但这并没有持续存在。我还使用sudo usermod -a -G xyzgroup gce_user 将用户 gce_user 恢复到 xyzgroup 组,但这也没有持续。 GAD 有时会在用户加入群组几天后从群组中删除该用户。

我注意到GCE Accounts daemon account_utils.py calls usermod 将用户添加到组:

command = ['usermod', '-G', groups, user]

GCE 文档说云控制台可用于管理(Linux 操作系统)用户帐户,包括(Linux 操作系统)组成员身份:https://cloud.google.com/compute/docs/access/user-accounts/#create_a_new_user_account

但是,说明开头是: 1. 转到User Accounts page

用户帐户页面的链接将要求您选择一个项目。选择后,生成的页面不是用户帐户页面 - 它是项目的整体仪表板页面。如果您进入 Dashboard 页面顶部的搜索栏 [user accounts] 并单击项目 User accounts (subtitled IAM & Admin),结果页面只会显示“(!) Failed to load”。

如何将用户 gce_user 添加到组 xyzusers 以使组成员身份保持不变,并且不会被 GAD 删除?最好是命令行,这样我就可以修复 xyz 软件包的安装程序 bash 脚本。

【问题讨论】:

    标签: linux bash cloud google-compute-engine redhat


    【解决方案1】:

    云用户帐户功能处于测试阶段,需要列入白名单。

    这是用户帐户的 Beta 版。此功能可能会以向后不兼容的方式进行更改,因此不建议将其用于生产用途。它不受任何 SLA 或弃用政策的约束。请求加入白名单以使用此功能。

    https://cloud.google.com/compute/docs/access/user-accounts/#useraccountsgroups

    【讨论】:

    • 似乎有很多繁文缛节来启用核心 Linux 管理功能的基线功能,但我提出了要求,感谢您强调这一点。
    • 我猜是为了安全。他们想让它成为 vm 元数据的一部分。
    • 合法关注,但操作系统中的组元数据(即 /etc/group 等)应该只由 GCE 容器服务监控,填充 VM 元数据。或者修改用于维护操作系统元数据的操作系统工具(等 gpasswd 、 usermod )以管理 VM 元数据。这种强制系统管理员也使用 GCloud 工具的架构是糟糕的工作流程。虽然强制通过电子邮件授予白名单请求希望只是测试版的一个产物,但整个基础架构应该在真正的版本中消失。
    • 测试组在评估了我的用例是否适合他们的功能后添加了我。他们仍在开发系统及其 API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多