Search code examples
google-cloud-platformgoogle-compute-engine

using oslogin on gcp with osAdminLogin role a user can't sudo on the instance


I have some GCP users with the roles : * compute.instances.osAdminLogin * iam.serviceAccountUser

They connect throw ssh with the GCP web interface in compute engine

When they do sudo ls

For some user the password is requested and some not.

in the folder /var/google-sudoers.d/ for the users that can do sudo without the prompt we can read on their file:

user_name ALL=(ALL) NOPASSWD: ALL

for the others the files are empty

os information :

uname -a
Linux xxx 4.15.0-1027-gcp #28~16.04.1-Ubuntu SMP Fri Jan 18 10:10:51 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

For the same users, on another vm, in the same gcp project, they all can do sudo.

I am expecting that for all users having the same roles, they have the same sudo behaviour on instances.

What should I do for my users to be able to sudo ? ( except overriding the empty files in the folder /var/google-sudoers.d/ > that is working but may not be stable)


Solution

  • I had a similar problem on a project that was originally set up with the legacy login system (based on SSH keys stored in instance or project metadata). When I converted the project to use OS Login, I lost the ability to sudo without a password on one VM instance. This was a major problem, since I had never set a password for my user account, and therefore was unable to sudo to troubleshoot the problem.

    Things I tried that did NOT work:

    • Rebooting the instance
    • Explicitly adding role roles/compute.osAdminLogin to my IAM account (I was already a project owner)

    I solved the problem by editing the project compute engine metadata to disable OS Login. After disabling, I confirmed that I was able to log into the problematic instance and sudo without a password. I then edited the project metadata again to re-enable OS Login. This time, passwordless sudo worked on the problematic instance. It appears that the instance was not fully reconfigured the first time I switched from legacy login to OS Login.