How to solve this error `sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set`...
TLDR: I am running Ubuntu 18.04 with i3 and I messed up my permissions. Whenever I run a command with sudo, I get this error message, sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. I am trying to figure out if I need to fully re-install Ubuntu or if this can be fixed in a less drastic way.
What had happened was: I was trying to upgrade my npm version with nvm and the nvm command was not being recognized. I followed this stackoverflow post's instructions https://stackoverflow.com/questions/21215059/cant-use-nvm-from-root-or-sudo to copy the version of node I had active via nvm into the /usr/local
. I ran the below. (Yes, I realize now that I should have investigated this series of commands before running them.)
n=$(which node);
n=${n%/bin/node};
chmod -R 755 $n/bin/*;
sudo cp -r $n/{bin,lib,share} /usr/local
I then got tons of errors saying
chmod: changing permissions of '/usr/bin/*': Operation not permitted
After that I ran sudo nvm install-latest-npm
and got the same error as I had before, sudo: nvm: command not found
.
Then I tried running another command with sudo, and got the error sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. I now get this error whenever I run anything with sudo.
I think this problem was caused by me running chmod -R 755 $n/bin/*;
but I'm confused because the error message said permissions for /usr/bin
were not changed.
I have a two-part question:
1) What caused this error? Am I correct that it was caused by the chmod -R
command?
2) Can I fix this without completely reinstalling ubuntu? If so, how?
For context, I already read these two questions sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0 and this /usr/bin/sudo must be owned by uid 0 and have the setuid bit set. However, I am not sure if the advice from the first question's answer applies to this situation, because the error message I receive is not referring specifically to /usr/lib/sudo/sudoers.so
.
Thanks for reading!
command-line bash permissions sudo chmod
add a comment |
TLDR: I am running Ubuntu 18.04 with i3 and I messed up my permissions. Whenever I run a command with sudo, I get this error message, sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. I am trying to figure out if I need to fully re-install Ubuntu or if this can be fixed in a less drastic way.
What had happened was: I was trying to upgrade my npm version with nvm and the nvm command was not being recognized. I followed this stackoverflow post's instructions https://stackoverflow.com/questions/21215059/cant-use-nvm-from-root-or-sudo to copy the version of node I had active via nvm into the /usr/local
. I ran the below. (Yes, I realize now that I should have investigated this series of commands before running them.)
n=$(which node);
n=${n%/bin/node};
chmod -R 755 $n/bin/*;
sudo cp -r $n/{bin,lib,share} /usr/local
I then got tons of errors saying
chmod: changing permissions of '/usr/bin/*': Operation not permitted
After that I ran sudo nvm install-latest-npm
and got the same error as I had before, sudo: nvm: command not found
.
Then I tried running another command with sudo, and got the error sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. I now get this error whenever I run anything with sudo.
I think this problem was caused by me running chmod -R 755 $n/bin/*;
but I'm confused because the error message said permissions for /usr/bin
were not changed.
I have a two-part question:
1) What caused this error? Am I correct that it was caused by the chmod -R
command?
2) Can I fix this without completely reinstalling ubuntu? If so, how?
For context, I already read these two questions sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0 and this /usr/bin/sudo must be owned by uid 0 and have the setuid bit set. However, I am not sure if the advice from the first question's answer applies to this situation, because the error message I receive is not referring specifically to /usr/lib/sudo/sudoers.so
.
Thanks for reading!
command-line bash permissions sudo chmod
2
Possibly a more relevant previous question is What if I accidentally run command “chmod -R” on system directories (/, /etc, …)
– steeldriver
Jan 9 at 0:59
Possible solution: askubuntu.com/a/634013/231142
– Terrance
Jan 9 at 4:20
add a comment |
TLDR: I am running Ubuntu 18.04 with i3 and I messed up my permissions. Whenever I run a command with sudo, I get this error message, sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. I am trying to figure out if I need to fully re-install Ubuntu or if this can be fixed in a less drastic way.
What had happened was: I was trying to upgrade my npm version with nvm and the nvm command was not being recognized. I followed this stackoverflow post's instructions https://stackoverflow.com/questions/21215059/cant-use-nvm-from-root-or-sudo to copy the version of node I had active via nvm into the /usr/local
. I ran the below. (Yes, I realize now that I should have investigated this series of commands before running them.)
n=$(which node);
n=${n%/bin/node};
chmod -R 755 $n/bin/*;
sudo cp -r $n/{bin,lib,share} /usr/local
I then got tons of errors saying
chmod: changing permissions of '/usr/bin/*': Operation not permitted
After that I ran sudo nvm install-latest-npm
and got the same error as I had before, sudo: nvm: command not found
.
Then I tried running another command with sudo, and got the error sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. I now get this error whenever I run anything with sudo.
I think this problem was caused by me running chmod -R 755 $n/bin/*;
but I'm confused because the error message said permissions for /usr/bin
were not changed.
I have a two-part question:
1) What caused this error? Am I correct that it was caused by the chmod -R
command?
2) Can I fix this without completely reinstalling ubuntu? If so, how?
For context, I already read these two questions sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0 and this /usr/bin/sudo must be owned by uid 0 and have the setuid bit set. However, I am not sure if the advice from the first question's answer applies to this situation, because the error message I receive is not referring specifically to /usr/lib/sudo/sudoers.so
.
Thanks for reading!
command-line bash permissions sudo chmod
TLDR: I am running Ubuntu 18.04 with i3 and I messed up my permissions. Whenever I run a command with sudo, I get this error message, sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. I am trying to figure out if I need to fully re-install Ubuntu or if this can be fixed in a less drastic way.
What had happened was: I was trying to upgrade my npm version with nvm and the nvm command was not being recognized. I followed this stackoverflow post's instructions https://stackoverflow.com/questions/21215059/cant-use-nvm-from-root-or-sudo to copy the version of node I had active via nvm into the /usr/local
. I ran the below. (Yes, I realize now that I should have investigated this series of commands before running them.)
n=$(which node);
n=${n%/bin/node};
chmod -R 755 $n/bin/*;
sudo cp -r $n/{bin,lib,share} /usr/local
I then got tons of errors saying
chmod: changing permissions of '/usr/bin/*': Operation not permitted
After that I ran sudo nvm install-latest-npm
and got the same error as I had before, sudo: nvm: command not found
.
Then I tried running another command with sudo, and got the error sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. I now get this error whenever I run anything with sudo.
I think this problem was caused by me running chmod -R 755 $n/bin/*;
but I'm confused because the error message said permissions for /usr/bin
were not changed.
I have a two-part question:
1) What caused this error? Am I correct that it was caused by the chmod -R
command?
2) Can I fix this without completely reinstalling ubuntu? If so, how?
For context, I already read these two questions sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0 and this /usr/bin/sudo must be owned by uid 0 and have the setuid bit set. However, I am not sure if the advice from the first question's answer applies to this situation, because the error message I receive is not referring specifically to /usr/lib/sudo/sudoers.so
.
Thanks for reading!
command-line bash permissions sudo chmod
command-line bash permissions sudo chmod
asked Jan 9 at 0:49
ByteByByteByteByByte
61
61
2
Possibly a more relevant previous question is What if I accidentally run command “chmod -R” on system directories (/, /etc, …)
– steeldriver
Jan 9 at 0:59
Possible solution: askubuntu.com/a/634013/231142
– Terrance
Jan 9 at 4:20
add a comment |
2
Possibly a more relevant previous question is What if I accidentally run command “chmod -R” on system directories (/, /etc, …)
– steeldriver
Jan 9 at 0:59
Possible solution: askubuntu.com/a/634013/231142
– Terrance
Jan 9 at 4:20
2
2
Possibly a more relevant previous question is What if I accidentally run command “chmod -R” on system directories (/, /etc, …)
– steeldriver
Jan 9 at 0:59
Possibly a more relevant previous question is What if I accidentally run command “chmod -R” on system directories (/, /etc, …)
– steeldriver
Jan 9 at 0:59
Possible solution: askubuntu.com/a/634013/231142
– Terrance
Jan 9 at 4:20
Possible solution: askubuntu.com/a/634013/231142
– Terrance
Jan 9 at 4:20
add a comment |
1 Answer
1
active
oldest
votes
must be owned by uid 0 and have the setuid bit set
Check the current owner and permissions with
ls -l /usr/bin/sudo
. It should similar to:
-rwsr-xr-x 1 root root 157192 2018-08-23 10:36:40 /usr/bin/sudo
Run
pkexec bash
in a terminal to get a shell with root permissions.
Fix ownership of the file:
chown root:root /usr/bin/sudo
Set the setuid bit:
chmod u+s /usr/bin/sudo
sudo
should now be available for you to make further repairs.
Pretty good thinking! Back when I wrote my answer I didn't even know about pkexec. I sure do now! Great answer!
– Terrance
Jan 9 at 14:28
@xiota Thank you for this very thorough response. When I checked the current owner and permissions, it was extremely similar to what you showed,-rwsr-xr-x 1 root root 149080 Jan 17 2018 /usr/bin/sudo
. However, when I ranpkexec bash
, I got an error message,pkexec must be setuid root
. Since I wasn't able to get a shell with root permissions, I am going to boot up in recovery mode and run the suggested commands from a shell in root mode there. I will let you know if that approach works.
– ByteByByte
Jan 10 at 3:22
While you are fixingsudo
, you probably need to fixpkexec
too.
– xiota
Jan 10 at 3:28
I ran the commands you listed from a root shell in recovery mode. Unfortunately, I still can't use sudo or pkexec outside of recovery mode, and I get the same error messages as I did previously. What should I do to fixpkexec
? (I tried googling this but didn't find anything helpful)
– ByteByByte
Jan 10 at 3:54
probably whatever you did did too much damage, and you'll need to reinstall.
– xiota
Jan 10 at 4:15
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1108162%2fhow-to-solve-this-error-sudo-usr-local-bin-sudo-must-be-owned-by-uid-0-and-ha%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
must be owned by uid 0 and have the setuid bit set
Check the current owner and permissions with
ls -l /usr/bin/sudo
. It should similar to:
-rwsr-xr-x 1 root root 157192 2018-08-23 10:36:40 /usr/bin/sudo
Run
pkexec bash
in a terminal to get a shell with root permissions.
Fix ownership of the file:
chown root:root /usr/bin/sudo
Set the setuid bit:
chmod u+s /usr/bin/sudo
sudo
should now be available for you to make further repairs.
Pretty good thinking! Back when I wrote my answer I didn't even know about pkexec. I sure do now! Great answer!
– Terrance
Jan 9 at 14:28
@xiota Thank you for this very thorough response. When I checked the current owner and permissions, it was extremely similar to what you showed,-rwsr-xr-x 1 root root 149080 Jan 17 2018 /usr/bin/sudo
. However, when I ranpkexec bash
, I got an error message,pkexec must be setuid root
. Since I wasn't able to get a shell with root permissions, I am going to boot up in recovery mode and run the suggested commands from a shell in root mode there. I will let you know if that approach works.
– ByteByByte
Jan 10 at 3:22
While you are fixingsudo
, you probably need to fixpkexec
too.
– xiota
Jan 10 at 3:28
I ran the commands you listed from a root shell in recovery mode. Unfortunately, I still can't use sudo or pkexec outside of recovery mode, and I get the same error messages as I did previously. What should I do to fixpkexec
? (I tried googling this but didn't find anything helpful)
– ByteByByte
Jan 10 at 3:54
probably whatever you did did too much damage, and you'll need to reinstall.
– xiota
Jan 10 at 4:15
add a comment |
must be owned by uid 0 and have the setuid bit set
Check the current owner and permissions with
ls -l /usr/bin/sudo
. It should similar to:
-rwsr-xr-x 1 root root 157192 2018-08-23 10:36:40 /usr/bin/sudo
Run
pkexec bash
in a terminal to get a shell with root permissions.
Fix ownership of the file:
chown root:root /usr/bin/sudo
Set the setuid bit:
chmod u+s /usr/bin/sudo
sudo
should now be available for you to make further repairs.
Pretty good thinking! Back when I wrote my answer I didn't even know about pkexec. I sure do now! Great answer!
– Terrance
Jan 9 at 14:28
@xiota Thank you for this very thorough response. When I checked the current owner and permissions, it was extremely similar to what you showed,-rwsr-xr-x 1 root root 149080 Jan 17 2018 /usr/bin/sudo
. However, when I ranpkexec bash
, I got an error message,pkexec must be setuid root
. Since I wasn't able to get a shell with root permissions, I am going to boot up in recovery mode and run the suggested commands from a shell in root mode there. I will let you know if that approach works.
– ByteByByte
Jan 10 at 3:22
While you are fixingsudo
, you probably need to fixpkexec
too.
– xiota
Jan 10 at 3:28
I ran the commands you listed from a root shell in recovery mode. Unfortunately, I still can't use sudo or pkexec outside of recovery mode, and I get the same error messages as I did previously. What should I do to fixpkexec
? (I tried googling this but didn't find anything helpful)
– ByteByByte
Jan 10 at 3:54
probably whatever you did did too much damage, and you'll need to reinstall.
– xiota
Jan 10 at 4:15
add a comment |
must be owned by uid 0 and have the setuid bit set
Check the current owner and permissions with
ls -l /usr/bin/sudo
. It should similar to:
-rwsr-xr-x 1 root root 157192 2018-08-23 10:36:40 /usr/bin/sudo
Run
pkexec bash
in a terminal to get a shell with root permissions.
Fix ownership of the file:
chown root:root /usr/bin/sudo
Set the setuid bit:
chmod u+s /usr/bin/sudo
sudo
should now be available for you to make further repairs.
must be owned by uid 0 and have the setuid bit set
Check the current owner and permissions with
ls -l /usr/bin/sudo
. It should similar to:
-rwsr-xr-x 1 root root 157192 2018-08-23 10:36:40 /usr/bin/sudo
Run
pkexec bash
in a terminal to get a shell with root permissions.
Fix ownership of the file:
chown root:root /usr/bin/sudo
Set the setuid bit:
chmod u+s /usr/bin/sudo
sudo
should now be available for you to make further repairs.
edited Jan 9 at 8:36
answered Jan 9 at 8:10
xiotaxiota
1,1621523
1,1621523
Pretty good thinking! Back when I wrote my answer I didn't even know about pkexec. I sure do now! Great answer!
– Terrance
Jan 9 at 14:28
@xiota Thank you for this very thorough response. When I checked the current owner and permissions, it was extremely similar to what you showed,-rwsr-xr-x 1 root root 149080 Jan 17 2018 /usr/bin/sudo
. However, when I ranpkexec bash
, I got an error message,pkexec must be setuid root
. Since I wasn't able to get a shell with root permissions, I am going to boot up in recovery mode and run the suggested commands from a shell in root mode there. I will let you know if that approach works.
– ByteByByte
Jan 10 at 3:22
While you are fixingsudo
, you probably need to fixpkexec
too.
– xiota
Jan 10 at 3:28
I ran the commands you listed from a root shell in recovery mode. Unfortunately, I still can't use sudo or pkexec outside of recovery mode, and I get the same error messages as I did previously. What should I do to fixpkexec
? (I tried googling this but didn't find anything helpful)
– ByteByByte
Jan 10 at 3:54
probably whatever you did did too much damage, and you'll need to reinstall.
– xiota
Jan 10 at 4:15
add a comment |
Pretty good thinking! Back when I wrote my answer I didn't even know about pkexec. I sure do now! Great answer!
– Terrance
Jan 9 at 14:28
@xiota Thank you for this very thorough response. When I checked the current owner and permissions, it was extremely similar to what you showed,-rwsr-xr-x 1 root root 149080 Jan 17 2018 /usr/bin/sudo
. However, when I ranpkexec bash
, I got an error message,pkexec must be setuid root
. Since I wasn't able to get a shell with root permissions, I am going to boot up in recovery mode and run the suggested commands from a shell in root mode there. I will let you know if that approach works.
– ByteByByte
Jan 10 at 3:22
While you are fixingsudo
, you probably need to fixpkexec
too.
– xiota
Jan 10 at 3:28
I ran the commands you listed from a root shell in recovery mode. Unfortunately, I still can't use sudo or pkexec outside of recovery mode, and I get the same error messages as I did previously. What should I do to fixpkexec
? (I tried googling this but didn't find anything helpful)
– ByteByByte
Jan 10 at 3:54
probably whatever you did did too much damage, and you'll need to reinstall.
– xiota
Jan 10 at 4:15
Pretty good thinking! Back when I wrote my answer I didn't even know about pkexec. I sure do now! Great answer!
– Terrance
Jan 9 at 14:28
Pretty good thinking! Back when I wrote my answer I didn't even know about pkexec. I sure do now! Great answer!
– Terrance
Jan 9 at 14:28
@xiota Thank you for this very thorough response. When I checked the current owner and permissions, it was extremely similar to what you showed,
-rwsr-xr-x 1 root root 149080 Jan 17 2018 /usr/bin/sudo
. However, when I ran pkexec bash
, I got an error message, pkexec must be setuid root
. Since I wasn't able to get a shell with root permissions, I am going to boot up in recovery mode and run the suggested commands from a shell in root mode there. I will let you know if that approach works.– ByteByByte
Jan 10 at 3:22
@xiota Thank you for this very thorough response. When I checked the current owner and permissions, it was extremely similar to what you showed,
-rwsr-xr-x 1 root root 149080 Jan 17 2018 /usr/bin/sudo
. However, when I ran pkexec bash
, I got an error message, pkexec must be setuid root
. Since I wasn't able to get a shell with root permissions, I am going to boot up in recovery mode and run the suggested commands from a shell in root mode there. I will let you know if that approach works.– ByteByByte
Jan 10 at 3:22
While you are fixing
sudo
, you probably need to fix pkexec
too.– xiota
Jan 10 at 3:28
While you are fixing
sudo
, you probably need to fix pkexec
too.– xiota
Jan 10 at 3:28
I ran the commands you listed from a root shell in recovery mode. Unfortunately, I still can't use sudo or pkexec outside of recovery mode, and I get the same error messages as I did previously. What should I do to fix
pkexec
? (I tried googling this but didn't find anything helpful)– ByteByByte
Jan 10 at 3:54
I ran the commands you listed from a root shell in recovery mode. Unfortunately, I still can't use sudo or pkexec outside of recovery mode, and I get the same error messages as I did previously. What should I do to fix
pkexec
? (I tried googling this but didn't find anything helpful)– ByteByByte
Jan 10 at 3:54
probably whatever you did did too much damage, and you'll need to reinstall.
– xiota
Jan 10 at 4:15
probably whatever you did did too much damage, and you'll need to reinstall.
– xiota
Jan 10 at 4:15
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1108162%2fhow-to-solve-this-error-sudo-usr-local-bin-sudo-must-be-owned-by-uid-0-and-ha%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Possibly a more relevant previous question is What if I accidentally run command “chmod -R” on system directories (/, /etc, …)
– steeldriver
Jan 9 at 0:59
Possible solution: askubuntu.com/a/634013/231142
– Terrance
Jan 9 at 4:20