Search code examples
linuxnode.jsnpmcentossudo

CentOS error - sudo: effective uid is not 0, is sudo installed setuid root?


I found another question with the same headline, however, I suppose my case is a bit different.

In an attempt to setup the new project, I needed to install nodejs. I realised that it worked only when used with sudo. For eg. sudo npm

Furthermore, I visited the link https://docs.npmjs.com/getting-started/fixing-npm-permissions and performed

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

to change default directory permissions. Now because I had to sudo npm here as well, I ran

sudo chown -R $(whoami) $(sudo npm config get prefix)/{lib/node_modules,bin,share}

Post this, whenever I try to use sudo, I get this error -

sudo: effective uid is not 0, is sudo installed setuid root?

I understand that my setup for npm should have been better and off root, but I am a Linux novice.

Any help would be appreciated. :)

More information -

ls -l $(which sudo) gives => ---s--x--x. 1 dev root 123832 Aug 13 2015 /usr/bin/sudo


Solution

  • The problem is that you probably changed permissions to the directory /usr/bin.

    To resolve that :

    1) First be sure that root is owner of this directory /usr/bin :

    chown root:root /usr/bin
    

    2) and change permission for this directory :

    chmod u+s /usr/bin/sudo