I know the password of gqqtest as I can login via ssh.

> psftp gqqtest@172.25.9.11 Using username "gqqtest". gqqtest@172.25.9.11's password: Remote working directory is /home/gqqtest 

Now I use another account to login, and once in Ubuntu, I use su to switch to gqqtest.

gqq@172.25.9.11:~$ su - gqqtest Password: su: Authentication failure gqq@172.25.9.11:~$ sudo su - gqqtest [sudo] password for gqq: gqqtest@172.25.9.11:~$ exit logout 

Just to verify, I tried sudo su - gqqtest and succeeded.

Why doesn't su allow me to switch to non-root even with correct password?

I searched here and there, eg. Why does su fail with "authentication error"?, they are all dealing with root or empty password.

$ type -a su; stat $(command -v su) su is /usr/bin/su su is /bin/su File: /usr/bin/su Size: 67816 Blocks: 136 IO Block: 4096 regular file Device: fd00h/64768d Inode: 4200703 Links: 1 Access: (0754/-rwxr-xr--) Uid: ( 0/ root) Gid: ( 1123/ wheel) Access: 2021-02-02 15:53:54.794314648 +0800 Modify: 2020-07-21 15:49:28.000000000 +0800 Change: 2021-02-02 15:53:02.314466458 +0800 Birth: - 
1

1 Answer

Your su is missing the setuid bit for some reason. Without it, su doesn't have the access need to authenticate and switch to another user. I assume your system is broken in more ways if that's the case, but this particular problem can be solved using:

sudo chmod u+s /usr/bin/su 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy