I know the password of gqqtest as I can login via ssh.
> psftp [email protected]
Using username "gqqtest".
[email protected]'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.
[email protected]:~$ su - gqqtest
Password:
su: Authentication failure
[email protected]:~$ sudo su - gqqtest
[sudo] password for gqq:
[email protected]:~$ 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: -
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: