While using sudo su I am getting this error:
sgr@sgr-VirtualBox:~$ sudo su
sudo: must be setuid root
I cannot log in to root? Why/How to fix it?
The root cause is someone messed with /usr/bin/sudo permissions. They should be something like :
$ ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 155008 Mar 12 17:27 /usr/bin/sudo
but for some reason, yours are likely (note the 's' vs 'x') :
-rwxr-xr-x 1 root root 155008 Mar 12 17:27 /usr/bin/sudo
How to fix it:
Boot a CD, DVD or USB key having a live distribution on it, mount your / file system and fix sudo permissions, and any other that might have been tampered. For example, here is a list of some files having the s bit set on my machine :
$ find /bin /sbin /usr/bin /usr/sbin -perm /u=s
/bin/mount
/bin/ping6
/bin/fusermount
/bin/ping
/bin/umount
/bin/su
/sbin/mount.cifs
/sbin/mount.ecryptfs_private
/usr/bin/sudo
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/mtr
/usr/bin/lppasswd
/usr/bin/traceroute6.iputils
/usr/bin/X
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/pkexec
/usr/bin/chfn
/usr/sbin/uuidd
/usr/sbin/pppd
/usr/sbin/pppoe