我正在 Google Cloud Platform 上使用虚拟机。创建后,可以通过 GCP Web GUI 通过 SSH 访问它。当我通过 SSH 访问时,我可以用来sudo
执行特权操作。当我通过 Chrome Desktop 或 VNC 等 GUI 方法访问时,我没有 sudo 权限。但是,无论whoami
哪种情况,我都会获得相同的用户名。
我很困惑,因为我有一些假设:
whoami
通过姓名表示当前用户。- 整个系统中,同一个名称只有一个用户,反之亦然。
sudo
适用于当前用户(与 相同whoami
)- 用户的身份验证和 sudo 属性在整个系统中是相同的。
如果这些都是真的,我不明白sudo
当我以不同的方式登录时为什么会有不同的行为。
更新 3:
我运行sudo usermod -aG sudo username
后,重新启动后,用户在所有地方都拥有 sudo 权限。sudoers 文件中没有任何变化。我没有想到在进行更改之前检查组文件。
从实际角度来看,我认为现在一切都很好。我仍然不明白同一个用户在不同的地方怎么会有不同的 sudo 权限。
更新 2:
/etc/sudoers
非注释行(和指令)包括:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
#includedir /etc/sudoers.d
包含sudoers.d
google_sudoers
%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
操作系统版本:Debian 10(buster)Linux 4.19.0-17-cloud-amd64
更新:
不幸的是,这可能是由 Google 添加的一些与 google-sudoers 组相关的功能引起的。
相关日志来自/var/log/auth.log
gpasswd[2309]: user user_me added by root to group google-sudoers
成功的 sudo:
sudo: user_me : TTY=pts/2 ; PWD=/home/user_me ; USER=root ; COMMAND=/usr/bin/echo test
sudo: pam_unix(sudo:session): session opened for user root by user_me(uid=0)
sudo: pam_unix(sudo:session): session closed for user root
sudo 失败:
sudo: user_me : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/user_me ; USER=root ; COMMAND=/usr/bin/echo test
我仍然不确定同一个用户的行为会有何不同。