TLDR: Я запускаю Ubuntu 18.04 с i3, и я испортил свои полномочия. Каждый раз, когда я выполняю команду с sudo, я получаю это сообщение об ошибке, sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. Я пытаюсь выяснить, должен ли я полностью переустановить Ubuntu или если это может быть зафиксировано менее решительным способом.
То, что произошло, было: Я пытался обновить свою npm версию с nvm, и команда nvm не распознавалась. Я следовал инструкциям этого stackoverflow сообщения https://stackoverflow.com/questions/21215059/cant-use-nvm-from-root-or-sudo для копирования версии узла, который я имел активный через nvm в /usr/local
. Я работал ниже. (Да, я понимаю теперь, когда я должен был исследовать этот ряд команд прежде, чем выполнить их.)
n=$(which node); \
n=${n%/bin/node}; \
chmod -R 755 $n/bin/*; \
sudo cp -r $n/{bin,lib,share} /usr/local
Я затем получил тонны ошибочного высказывания chmod: changing permissions of '/usr/bin/*': Operation not permitted
После этого я работал sudo nvm install-latest-npm
и получил ту же ошибку, как я имел прежде, sudo: nvm: command not found
.
Затем я попытался выполнить другую команду с sudo и получил ошибку sudo: /usr/local/bin/sudo must be owned by uid 0 and have the setuid bit set
. Я теперь получаю эту ошибку каждый раз, когда я выполняю что-либо с sudo.
Я думаю, что эта проблема была вызвана мной выполнение chmod -R 755 $n/bin/*; \
но я смущен, потому что в сообщении об ошибке было сказано что полномочия для /usr/bin
не были изменены.
У меня есть вопрос с двумя частями: 1), Что вызвало эту ошибку? Я корректен, что это было вызвано chmod -R
команда? 2) я могу зафиксировать это, полностью не переустанавливая человечность? Если так, как?
Для контекста я уже считал эти два вопроса sudo:/usr/lib/sudo/sudoers.so должен принадлежать uid 0, и этот/usr/bin/sudo должен принадлежать uid 0 и иметь setuid набор битов. Однако я не уверен, относится ли совет из ответа первого вопроса к этой ситуации, потому что сообщение об ошибке, которое я получаю, не относится конкретно к /usr/lib/sudo/sudoers.so
.
Спасибо за чтение!
должен принадлежать uid 0 и иметь setuid набор битов
Проверьте текущего владельца и полномочия с ls -l /usr/bin/sudo
. It должен подобный:
-rwsr-xr-x 1 root root 157192 2018-08-23 10:36:40 /usr/bin/sudo
Выполненный pkexec bash
в терминале для получения оболочки с корневыми полномочиями.
Зафиксируйте владение файла:
chown root:root /usr/bin/sudo
Установите бит setuid:
chmod u+s /usr/bin/sudo
sudo
должно теперь быть доступно для Вас для создания дальнейших восстановлений.