You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用OS Login时如何自定义sudo权限?

启用OS Login时如何自定义sudo权限?

当然可以自定义这些sudo权限,甚至给特定用户或组完全禁用sudo!我结合实际经验给你分享几种靠谱的方法:

1. 用自定义IAM角色精细控制登录权限

Google Cloud默认的「Compute OS Login」和「Compute OS Admin Login」角色是预设的权限集合,如果你想让用户只能登录但没有sudo权限,完全可以创建自定义IAM角色:

  • 只保留compute.osLogin核心权限,去掉所有和sudo相关的权限项(比如compute.osAdminLogin对应的sudo授权),然后把这个自定义角色分配给目标用户。这样用户能正常通过OS Login登录实例,但默认没有sudo权限。
  • 要是想让部分用户拥有受限的sudo权限,后续还可以结合本地sudoers配置来补充,不过要注意Google自动生成的sudo规则优先级较高,需要用本地配置覆盖。

2. 本地sudoers配置覆盖Google生成的规则

OS Login会在/var/google-sudoers.d/目录下为每个授权用户生成单独的sudo规则文件(就像你提到的first_last_example_com那个文件),如果你想修改某个用户的sudo权限,可以通过在/etc/sudoers.d/下创建优先级更高的配置文件来覆盖:

  • 禁用特定用户的sudo:创建一个命名类似99-custom-deny的文件(文件名数字越大,加载优先级越高),用visudo -f /etc/sudoers.d/99-custom-deny编辑,加入规则:
    first_last_example_com ALL=(ALL) DENY
    
  • 设置受限的sudo权限:比如只想让用户能运行apt update和apt upgrade,可以写:
    first_last_example_com ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/apt upgrade
    
    👉 重点提醒:编辑sudoers相关文件必须用visudo命令,它会自动检查语法错误,避免因配置失误导致sudo功能失效。

3. 完全禁用Google自动生成的sudo规则

如果你想完全接管实例的sudo权限管理,不想使用OS Login自动生成的规则,可以编辑/etc/sudoers文件,找到包含/var/google-sudoers.d/的那一行,把它注释掉:

# #includedir /var/google-sudoers.d

之后系统就不会加载Google生成的用户sudo规则了,你可以完全在/etc/sudoers或/etc/sudoers.d/目录下配置自己的sudo策略。

备注:内容来源于stack exchange,提问作者anon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 12:38:02