I am able to run anything using
sudo; my password is accepted. But whenever I try to do
su from a shell, it fails with:
su: incorrect password
What can the problem be?
su means substitute user and if it is called without any arguments you will become the superuser. Therefore you have to enter the root password.
This is some kind of unhandy if many people need to use commands for the system administration or similar stuff with extended user rights. You just don't want that people have unlimited rights by sharing all the same root password.
The solution for this kind of problems is
sudo ("substitute user do").
This will allow you to specify the commands someone can invoke and define the permissions. For
sudo you don't have to enter the root password, but the password of the user who tries to invoke a sudo command.
Some distributions have the root user disabled for security reasons. This could be one explanation why you aren't able to use
su. In that case, to obtain a shell with root privileges use
sudo -s ;-)
The su command without options, will default to allow you to become the root user. It isn't asking for your password, but the root password.
The sudo command always asks for your password.