su allows you to access someone's account if
- You're root or
- You know their password
There's no way to list what users know another users password (and if you could, you should revoke all their access. Users should never give out their password, for any reason, to anyone, including IT).
sudo grants an account authorization to access another account. Instead of knowing the password on the target account, users must know (and enter) their password, to prove who they are. This access is also logged, and you can manage the access lists with the
/etc/sudoers file (use the command
visudo to actually edit it, don't edit it directly!)
You can read about the format of the
sudoers file with
man sudoers. Usually, a group is granted sudo access (such as
sudo), and then users are added to that group, and you can list the users in that group to find out who has access.