【问题标题】:Google Compute Engine DEBIAN : /etc/group setting lost after RebootGoogle Compute Engine DEBIAN:重启后 /etc/group 设置丢失
【发布时间】:2016-07-25 12:48:03
【问题描述】:

我在 Google Compute Engine 上使用 Debian GNU/Linux 8 (jessie)。 我的实例是新创建的。 我曾尝试使用此命令将用户添加到组

sudo adduser <username> <groupname>

甚至

sudo usermod -a -G <groupname> <username>

在我重新启动系统之前,它运行良好。 重新启动后,我运行 vim /etc/group 但我分配给该组的每个用户都消失了。

我还检查了 /etc/group 的修改日期。好像是系统重启后修改的。

【问题讨论】:

  • 我在 GCE 上的 CentOS 7 上遇到了同样的问题(尽管我使用的是 usermod -a -G group user)。我已经记录了一张票,所以如果我得到修复/更多信息,我会更新它。
  • @willemmerson 对此有何更新?我在CentOS7上也遇到过这种情况,真的很烦。
  • 您在这方面有什么进展吗?我们有同样的问题,即使我们可以破解一个解决方法,最好有一个官方修复。

标签: linux debian google-compute-engine


【解决方案1】:

我今天在 CentOS 7 服务器上也遇到了这个问题。我不明白为什么我的 usermod 命令似乎成功了,但在 GCE 上重新启动实例后却没有持续。

我从 Google 得到了这个修复,不知道为什么没有更好的记录:

用户和组部分由“google-accounts-daemon.service”管理,它是 linux 的来宾图像包的一部分。要使项目中的用户拥有一个持久组,您必须按照以下步骤操作。

在以下示例中,组“club”将被修改为该文件。

1- 在每个实例上将用户添加到 /etc/default/instance_configs.cfg,有一个选项“组”。例如:

“groups = adm,dip,lxd,plugdev,video,club”

2- 更改此文件后重新启动守护程序:

“sudo systemctl restart google-accounts-daemon.service”

3- 检查守护进程的状态,它应该显示分配给所有用户的新组的一些输出:

“sudo systemctl status google-accounts-daemon.service”
“Jul 18 07:03:37 instance-2 usermod[1523]: add 'jaw' to group 'club' 
Jul 18 07:03:37 instance-2 usermod[1523]: add 'jaw' to shadow group 'club' 
Jul 18 07:03:37 instance-2 usermod[1528]: add 'root' to group 'club' 
Jul 18 07:03:37 instance-2 usermod[1528]: add 'root' to shadow group 'club' 
Jul 18 07:03:37 instance-2 usermod[1533]: add 'lucmult' to group 'club' 
Jul 18 07:03:37 instance-2 usermod[1533]: add 'lucmult' to shadow group 'club' “

【讨论】:

  • 问题已解决。谢谢,但据我了解,此解决方案会将项目中的所有用户添加到组中,而不是用户子集。
  • 你说得对,不幸的是,我目前看不到任何解决方法。我还希望能够阻止网站上的每个人被自动添加到 sudoers wheel 组。
  • 另一种解决方法是使用 crontab 通过@reboot 运行这些命令,但延迟时间为 5 秒
  • 应用您的解决方案后,我无法再通过 ssh 访问实例。而且我使用 crontab 的工作也不能解决问题,因为用户组将在一段时间后重置。
  • 运行以下命令: gcloud compute instances add-metadata [instance_name] --metadata startup-script-url=storage.googleapis.com/gce-scripts/gee.sh 这会为实例添加一个用于故障排除的启动脚本,然后重置实例并检查串行输出端口:gcloud compute instances get-serial-port-output [instance_name] 它将列出 SSH 服务正在侦听的端口等信息,并希望提供调试信息来帮助您解决此问题。编号:github.com/GoogleCloudPlatform/compute-ssh-diagnostic-sh
【解决方案2】:

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

但是,说明以: 1. 前往User Accounts page。

用户帐户页面的链接将要求您选择一个项目。选择后,生成的页面不是用户帐户页面 - 它是项目的整体仪表板页面。如果您进入仪表板页面顶部的搜索栏 [用户帐户] 并单击项目用户帐户(副标题为 IAM 和管理员),结果页面只会显示“(!)加载失败”。

FWIW 我使用的是 RHEL7 映像。这个管理 Linux 主机的基本功能,即持久组成员身份,似乎被严重破坏,甚至在 GCE 中记录得更糟糕。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 2014-12-08
    • 2019-02-07
    相关资源
    最近更新 更多