我正在 Google Cloud Platform 上使用虛擬機器。創建後,可以透過 GCP Web GUI 透過 SSH 進行存取。當我透過 SSH 存取時,我可以用來sudo
執行特權操作。當我透過 Chrome 桌面或 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
我仍然不確定同一用戶的行為有何不同。